一、SqlSessionFactoryBuilder
它的作用只是通过配置文件创建SqlSessionFactory,所以只要创建出SqlSessionFactory,它就可以销毁了。所以说,它的生命周期是在方法之内。
String xmlPath = "mybatis全局配置文件的路径";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
二、SqlSessionFactory
它的作用是创建SqlSession的工厂,工厂一旦创建,除非应用停掉,否则不要销毁,所以说,它的生命周期是在应用范围内。这里可以通过单例模式来管理它,在mybatis整合spring之后,最好的处理方式是把SqlSessionFactory交由spring来做单例管理。
SqlSession sqlSession = sqlSessionFactory.openSession();
三、SqlSession是一个面向用户(程序员)的接口,它的默认实现是DefaultSqlSession。
Mybatis是通过SqlSession来操作数据库的。SqlSession中不仅包含要处理的SQL信息,还包括一些数据信息,所以说它是线程不安全的,因此它最佳的生命周期范围是在方法体之内。