mybatis的探索过程之SqlSessionFactoryBuilder,SqlSessionFactory,SqlSession作用域和生命周期

                               mybatis的探索过程之

   SqlSessionFactoryBuilder,SqlSessionFactory,SqlSession的

                             作用域和生命周期

SqlSessionFactoyBuilder

      SqlSessionFactoryBuilder这个类的作用就是为了创建SqlSessionFactory的,一旦SqlSessionFactory创建完毕,SqlSessionFactoryBuilder就没有存在的价值了,就应该被销毁。所以SqlSessionFactoryBuilder最好的作用域就是方法体内(及作为一个本地方法变量),用完即销毁。生命周期也就是调用方法的开始到结束

SqlSessionFactory

       SqlSessionFactory一旦被创建,就会存在于程序的整个生命周期,也就是只要程序不结束,它就会一直存在,你不会去主动销毁它,因为干嘛要销毁它呢?所以,我们要做的就是不要重复的去创建SqlSessionFactory!单例模式很适合这种情况!

SqlSession

       SqlSession实例是不能共享的,并且不是现程安全的,所以它的最好的作用域应该是方法体内,或者是一次请求时,即method或者request,也就是说再收到一次Http请求时,就应该创建一次一个SqlSession实例,那么也就是

说在每次使用完之后我们都需要把它关闭,即调用.close();

        代码如下:

      

    综上所述,为了解决这些问题我们为SqlSessionFactory建立单例模式

    

         这样就解决了SqlSessionFactory的单一问题,还用SqlSessionFactoryBuilder的即用即销毁的问题

          剩下的就是在调用玩SqlSession之后将其销毁就好了

         

好啦,说到这里吧,欢迎留言指错!


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值