在 MyBatis 中,SqlSession 是其核心接口。在 MyBatis 中有两个实现类,DefaultSqlSession 和 SqlSessionManager。
SqlSessionFactory,顾名思义就是获取SqlSession对象的工厂,功能类似于JDBC中加载数据库驱动。所以SqISessionFactory对象一旦被创建,应该在应用执行期间都存在,因此SqlSessionFactory的最佳作用域是应用范围,建议定义为静态变量。
SqlSession类似于JDBC的connection对象,每个线程都应该有自己的SqlSession实例。SqlSession的实例不能共享,它是线程不安全的。因此最佳作用域是请求或方法范围。SqlSession对象能够执行数据库的增删改查操作,因此在使用后应该关闭,并确保使用finally块来关闭它。
  1. // 1.mybatis配置文件
  2.             String resources = "mybatis.xml";
  3.             // 2.获取Reader对象
  4.             Reader resourceAsReader = Resources.getResourceAsReader(resources);
  5.             // 3.获取SqlSessionFactoryBuilder
  6.             SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsReader);
  7.             // 4.创建对应的session
  8.             SqlSession sqlSession = build.openSession();

 

    创建sqlsession经过了以下几个主要步骤:

    从配置中获取Environment;     

    从Environment中取得DataSource;

    从Environment中取得TransactionFactory;     

    从DataSource里获取数据库连接对象Connection;

    在取得的数据库连接上创建事务对象Transaction;      

    创建Executor对象(该对象非常重要,事实上sqlsession的所有操作都是通过它完成的);

         创建sqlsession对象。

posted on 2020-08-02 17:32  尧啊尧  阅读(189)  评论(0编辑  收藏  举报