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>
posted @ 2020-06-23 20:54  曾强  阅读(47)  评论(0编辑  收藏