作用域和生命周期是至关重要的,因为错误的使用会导致非常严重的并发问题。
SqlSessionFactoryBuilder
用来创建SqlSessionFactory工厂的,使用完之后可以丢弃
SqlSessionFactory
可以想象成:数据库连接池
一旦被创建就应该在应用的运行期间一直存在,没有任何理由丢弃它或重新创建另一个实例。请不要多次创建,多次创建会导致资源被占用。
最简单的就是使用单例模式或者静态单例模式。
SqlSession
可以理解为一个请求,向连接池连接的请求。
SqlSession 的实例不是线程安全的,因此是不能被共享的,所以它的最佳的作用域是请求或方法作用域。
使用完毕之后立马关闭它,否则会造成资源浪费。
而SqlSession中的Mapper就是一个业务。