MyBatis:SqlSession及其工厂类的作用域和生命周期
Posted renzhongpei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis:SqlSession及其工厂类的作用域和生命周期相关的知识,希望对你有一定的参考价值。
-
SqlSession创建流程:
-
使用SqlSessionFactoryBuilder创建SqlSessionFactory。
-
使用SqlSessionFactory创建SqlSession。
-
SqlSessionFactoryBuilder
-
就是SqlSessionFactory的建造器,典型的工厂模式。
-
创建后就不再需要了,因为就是为了创造SqlSessionFactory的工具类。
-
作用域:局部变量
SqlSessionFactory
-
类似DBCP的连接池。创建就应该一直存在,没有任何理由丢弃它或重新创建另一个实例。因此应该使用单例模式或静态单例模式来创建。
-
作用域:应用作用域(Application)程序运行就创建,程序关闭才释放。
SqlSession
-
类似JDBC的一个Connection对象。因此每次使用完就应该要关闭,这样才能回收到SqlSessionFactory中继续利用,而且SqlSession不是线程安全的,不能被共享。
-
作用域:请求或方法。
-
尽量使用finally块中。
以上是关于MyBatis:SqlSession及其工厂类的作用域和生命周期的主要内容,如果未能解决你的问题,请参考以下文章
Mybatis学习笔记-增删改的操作 -对SqlSession的优化封装-优化代码
Mybatis -- Mybatis相应API(SqlSessionFactoryBuilderSqlSessionFactory(可以设置自动提交事务)SqlSession)