• MyBatis的核心配置


    MyBatis的核心对象

    1.SqlSessionFactory

      SqlSessionFactory是单个数据库映射关系经过编译后的内存镜像,用于创建 SqlSession。 SqlSessionFactory对象的实例通过SqlSessionFactoryBuilder对象来构建,它通过XML配置文件或一个预先定义好的 Configuration实例构建出SqlSessionFactory的实例。通过XML配置文件构建出SqlSessionFactory实例的实现代码如下:

    //读取配置文件
    InputStream inputStream = Resources.getResourceAsStream("配置文件位置");
    根据配置文件构建 sqlSessionFactory
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    
    

      SqlSessionFactory对象是线程安全的,它一旦被创建,在整个应用执行期间都会存在。如果多次地创建同一个数据库的 SqlSessionFactory,那么此数据库的资源将很容易被耗尽。所以在构建SqISessionFactory实例时,建议使用单列模式。

    2.SqlSession

      SqlSession是应用程序与持久层之间执行交互操作的一个单线程对象,其主要作用是执行持久化操作。SqlSession对象包含了数据库中所有执行SQL操作的方法,它底层封装了JDBC连接,所以可以直接使用其实例来执行已映射的SQL语句。SqlSession实例是不能被共享的,也是线程不安全的,因此其使用范围最好限定在一次请求或一个方法中,绝不能将其放在一个类的静态字段、实例字段或任何类型的管理范围中使用。使用完 SqISession对象之后,要及时将它关闭,通常可以将其放在finally块中关闭。
    SqlSession对象常用方法如下所示。
    1. T selectOne(String statement);
    查询方法。参数 statement是在配置文件中定义的元素的id,parameter是查询所需参数。该方法返回执行SQL语句查询结果的一个泛型对象。
    3. List selectList( String statement);
    查询方法。参数 statement是在配置文件中定义的元素的id, parameter是查询所需的参数。该方法返回执行SQL语句查询结果的泛型对象的集合。
    5.e List selectList(String statement, Object parameter, RowBounds rowBounds);
    查询方法。参数 statement是在配置文件中定义的元素的id,parameter是查询所需的参数, ResultHandler对象用于处理查询返回的复杂结果集,通常用于多表查询。
    7.int insert( String statement);
    插入方法。参数 statement是在配置文件中定义的元素的id。该方法返回执行SQL语句所影响的行数。
    8.int insert(String statement, Object parameter);
    插入方法。参数statement是在配置文件中定义的元素的id,parameter是插入所需的参数。该方法返回执行SQL语句所影响的行数。
    9.int update(String statement);
    更新方法。参数statement是在配置文件中定义的元素的id。该方法返回执行SQL语句所影响的行数。
    10.int update(String statement, Object parameter);
    更新方法。参数statement是在配置文件中定义的元素的id,parameter是更新所需的参数。该方法返回执行SQL语句所影响的行数。
    11.int delete(String statement);
    删除方法。参数statement是在配置文件中定义的元素的id。该方法返回执行SQL语句所影响的行数。
    12.int delete(String statement, Object parameter );
    删除方法。参数statement是在配置文件中定义的元素的id,parameter是删除所需的参数。该方法返回执行SQL语句所影响的行数。
    13.void commit();
    提交事务的方法。
    14.void rollback();
    回滚事务的方法。
    15.void close();
    关闭SqlSession对象。
    16.T getMapper(Class type)
    该方法会返回 Mapper接口的代理对象,该对象关联了 Sqlsession对象,开发人员可以使用该对象直接调用方法操作数据库。参数type是 Mapper的接口类型。
    17.Connection getConnection();
    获取JDBC数据库连接对象的方法。
    注意:为了简化开发,可以将构建SqlSessionFactory对象、创建 SqlSession对象等重复性代码封装到一个工具类中,然后通过工具类来创建 SqlSession。

    MyBatis配置文件元素

    <configuration> 
       <!-- 属性 -->
       <properties/>
       <!-- 设置 -->
       <settings/> 
       <!-- 类型命名 -->
       <typeAliases/> 
       <!-- 类型处理器 -->
       <typeHandlers/> 
       <!-- 对象工厂 -->
       <objectFactory/>
       <!-- 插件 -->
       <plugins/>
       <!-- 配置环境 -->
       <environments>
            <!-- 环境变量 -->
            <environment>
                <!-- 事务管理器 -->
                <transactionManager/>
                <!-- 数据源-->
                <dataSource/>
            </environment>
       </environments>
       <!-- 数据库厂商标识 -->
       <databaseIdProvider/>
       <!-- 映射器 -->
       <mappers/>
    </configuration>
    
  • 相关阅读:
    难以实践敏捷:估算
    使用AsyncEnumerator简化异步操作
    ESXi 入门配置
    学习模式,不如先了解问题
    我应该用哪种虚拟机?(一)
    在2003上实现Custom Task Pane
    我应该用哪种虚拟机?(终)
    我应该用哪种虚拟机?(二)
    正则表达式周二挑战赛 第十二周
    [译]Node中的ES6特性
  • 原文地址:https://www.cnblogs.com/zq98/p/13184445.html
Copyright © 2020-2023  润新知