MyBatis(四):SqlSession及其工厂类的作用域和生命周期
SqlSession及其工厂类的作用域和生命周期
SqlSession创建流程:
使用SqlSessionFactoryBuilder创建SqlSessionFactory。
使用SqlSessionFactory创建SqlSession。
SqlSession可以通过Sql Mapper.class进行数据库操作,或者直接使用SqlSession的方法输入SqlMapper.方法()进行数据库操作,使用完要关闭。
SqlSessionFactoryBuilder
就是SqlSessionFactory的建造器,典型的工厂模式。
创建后就不再需要了,因为就是为了创造SqlSessionFactory的工具类。
作用域:局部变量
SqlSessionFactory
类似DBCP的连接池。创建就应该一直存在,没有任何理由丢弃它或重新创建另一个实例。因此应该使用单例模式或静态单例模式来创建。
作用域:应用作用域(Application)程序运行就创建,程序关闭才释放。
SqlSession
类似JDBC的一个Connection对象。因此每次使用完就应该要关闭,这样才能回收到SqlSessionFactory中继续利用,而且SqlSession不是线程安全的,不能被共享。
作用域:请求或方法。
尽量使用finally块中。
相关推荐
leowzl 2020-08-15
明天你好 2020-08-03
idning 2020-08-03
liusarazhang 2020-06-28
chenlxhf 2020-06-25
Jonderwu 2020-06-14
shikailonggy 2020-06-05
shangs00 2020-05-09
wanff0 2020-05-04
ChinaGuanq 2020-05-01
whbing 2020-04-21
hyxinyu 2020-04-18
sunlizhen 2020-04-17
amberom 2020-03-28
zgwyfz 2020-03-28
ThinkingLink 2020-02-29
Livis的开发之路 2020-02-28
sunskyday 2020-02-01