mybatis的探索过程之SqlSessionFactoryBuilder,SqlSessionFactory,SqlSession作用域和生命周期
2017-05-09 11:16
706 查看
mybatis的探索过程之
SqlSessionFactoryBuilder,SqlSessionFactory,SqlSession的
作用域和生命周期
SqlSessionFactoyBuilder
SqlSessionFactoryBuilder这个类的作用就是为了创建SqlSessionFactory的,一旦SqlSessionFactory创建完毕,SqlSessionFactoryBuilder就没有存在的价值了,就应该被销毁。所以SqlSessionFactoryBuilder最好的作用域就是方法体内(及作为一个本地方法变量),用完即销毁。生命周期也就是调用方法的开始到结束。
SqlSessionFactory
SqlSessionFactory一旦被创建,就会存在于程序的整个生命周期,也就是只要程序不结束,它就会一直存在,你不会去主动销毁它,因为干嘛要销毁它呢?所以,我们要做的就是不要重复的去创建SqlSessionFactory!单例模式很适合这种情况!
SqlSession
SqlSession实例是不能共享的,并且不是现程安全的,所以它的最好的作用域应该是方法体内,或者是一次请求时,即method或者request,也就是说再收到一次Http请求时,就应该创建一次一个SqlSession实例,那么也就是
说在每次使用完之后我们都需要把它关闭,即调用.close();
代码如下:
综上所述,为了解决这些问题我们为SqlSessionFactory建立单例模式
这样就解决了SqlSessionFactory的单一问题,还用SqlSessionFactoryBuilder的即用即销毁的问题
剩下的就是在调用玩SqlSession之后将其销毁就好了
好啦,说到这里吧,欢迎留言指错!
SqlSessionFactoryBuilder,SqlSessionFactory,SqlSession的
作用域和生命周期
SqlSessionFactoyBuilder
SqlSessionFactoryBuilder这个类的作用就是为了创建SqlSessionFactory的,一旦SqlSessionFactory创建完毕,SqlSessionFactoryBuilder就没有存在的价值了,就应该被销毁。所以SqlSessionFactoryBuilder最好的作用域就是方法体内(及作为一个本地方法变量),用完即销毁。生命周期也就是调用方法的开始到结束。
SqlSessionFactory
SqlSessionFactory一旦被创建,就会存在于程序的整个生命周期,也就是只要程序不结束,它就会一直存在,你不会去主动销毁它,因为干嘛要销毁它呢?所以,我们要做的就是不要重复的去创建SqlSessionFactory!单例模式很适合这种情况!
SqlSession
SqlSession实例是不能共享的,并且不是现程安全的,所以它的最好的作用域应该是方法体内,或者是一次请求时,即method或者request,也就是说再收到一次Http请求时,就应该创建一次一个SqlSession实例,那么也就是
说在每次使用完之后我们都需要把它关闭,即调用.close();
代码如下:
综上所述,为了解决这些问题我们为SqlSessionFactory建立单例模式
这样就解决了SqlSessionFactory的单一问题,还用SqlSessionFactoryBuilder的即用即销毁的问题
剩下的就是在调用玩SqlSession之后将其销毁就好了
好啦,说到这里吧,欢迎留言指错!
相关文章推荐
- MyBatis--SqlSessionFactoryBuilder,SqlSessionFactory,SqlSession作用域和生命周期
- Mybatis的SqlSessionFactoryBuilder/SqlSessionFactory/SqlSession生命周期总结
- mybatis开发dao实现类之SqlSession、SqlSessionFactory、SqlSessionFactoryBuilder的生命周期
- mybatis底层原理学习(一):SqlSessionFactory和SqlSession的创建过程
- mybatis源码学习之执行过程分析(1)——SqlSessionFactory及SqlSession的创建
- mybatis源码分析(1)——SqlSessionFactory实例的产生过程
- SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession作用域(Scope)和生命周期
- MyBatis启动:SqlSessionFactory的建立过程
- mybatis之入门到开发(三)之常用对象SqlSessionFactory和SqlSession,动态sql,输入映射和输出映射
- 【Mybatis源码分析】01-SqlSessionFactory的创建过程
- myBatis源码之SqlSessionFactoryBuilder
- SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession作用域(Scope)和生命周期
- MyBatis源码学习系列:02-核心接口SqlSessionFactory和SqlSession
- MyBatis中SQLSessionFactory和SqlSession的简介以及配置文件使用(二)
- Spring和Mybatis整合过程中遇到的Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required的异常
- mybatis源码分析——SqlSessionFactory实例的产生过程
- MyBatis学习总结(1)----SqlSessionFactory,SqlSession及配置文件
- 3、关于利用SqlSessionFactoryBuilder去构建SqlSessionFactory,以及Mybatis的dao的实现
- SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession作用域(Scope)和生命周期
- Mybatis-Sqlsession/Builder/Factory