兰州网站建设,兰州网站建设公司,兰州小程序开发|兰州软件开发|兰州东方商易科技
在线客服,兰州网站建设|兰州APP开发|兰州小程序开发|兰州软件开发|兰州东方商易科技
首页>行业动态
mybatis中SqlSession的线程安全性讨论

 对绝大数Java开发者而言mybatis并不陌生,从经典的SSM(Spring,spring-mvc,mybatis)框架,到现在流行的Springboot,随处可见mybatis的身影。mybatis作为比较主流的orm框架,支持用户定制sql,灵活又方便,颇受开发者喜爱。我们在使用mybatis难免会遇到各种坑,其中SqlSession的线程安全性问题也总会遇到。

       SqlSession作为一个接口,其并没有线程安全性的问题,我们常说的线程安全问题是SqlSession的一个实现类DefaultSqlSession,mybatis的作者也对此类加以"Note that this class is not Thread-Safe"的注释。此外SqlSession还有两个实现类SqlSessionManager和SqlSessionTemplate,这两个实现类是线程安全的。
线程不安全的DefaultSqlSession

        我们都知道DefaultSqlSession是线程不安全的,也会有很多博主讲解"SqlSessionTemplate是如何保证DefaultSqlSession线程安全的",但是DefaultSqlSession不安全的体现是什么?不安全产生的原因在哪?今天作者通过一个例子给读者演示下并发情况下DefaultSqlSession线程不安全的表现,以及源码追踪产生线程安全问题的源头。

样例代码如下:

     配置文件mybatis-config.xml,简单配置保证能正常运行

   
       
       
       
           
               
               
                   
                   
                   
                   
               

           

       

       
           
            
       

   

 

二维码,兰州APP开发,兰州APP定制,兰州小程序开发,兰州微信小程序开发,兰州app软件定制
客服,兰州APP开发,兰州APP定制,兰州小程序开发,兰州微信小程序开发,兰州app软件定制
联系电话,兰州APP开发,兰州APP定制,兰州小程序开发,兰州微信小程序开发
联系电话:0931-8414525
技术支持:15719323307
投诉建议:18153688379
联系地址,兰州APP开发,兰州APP定制,兰州小程序开发,兰州微信小程序开发,兰州app软件定制
兰州市七里河区敦煌路街道中天健广场1幢718
兰州市西津西路16号兰州中心写字楼1单元2110
兰州市定西南路229号(甘肃省科学院)
ICP备案号:陇ICP备17003752号-2 甘公网安备 甘公网安备 6201032000477
联系我们,兰州APP开发,兰州APP定制,兰州小程序开发,兰州微信小程序开发,兰州app软件定制
联系我们,兰州APP开发,兰州APP定制,兰州小程序开发,兰州微信小程序开发,兰州app软件定制
联系我们,兰州APP开发,兰州APP定制,兰州小程序开发,兰州微信小程序开发,兰州app软件定制