您的位置:首页 > 产品设计 > UI/UE

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之后将其销毁就好了

         


好啦,说到这里吧,欢迎留言指错!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐