一、SqlSessionFactoryBuilder
通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory。
将SqlSessionFactoryBuilder当成一个工具类使用即可,不需要使用单例管理。
在需要创建SqlSessionFactory的时候,只需要new一次SqlSessionFactoryBuilder即可。
二、 SqlSessionFactory
通过SqlSessionFactory创建SqlSession,使用单例模式管理sqlSessionFactory(工厂一旦创建就一直使用一个实例)。
将来mybatis和Spring整合后,使用单例模式管理sqlSessionFactory。
三、SqlSession
SqlSession是一个面向用户(程序员)的接口。
SqlSession中提供了很多操作数据库的方法:如selectOne(返回单个记录)、selectList(返回单个或多个记录)。
SqlSession是线程不安全的,在SqlSession实现类中除了有接口中的方法除了操作数据库的方法,还有数据库属性,导致线程不安全。
SqlSession最佳应用场合在方法体内,因为每个线程对相同的方法也有不同的内存区域。这种线程不安全的变量只能放在方法内部,定义成局部变量。