1.SqlSessionFactorySqlSessionFactory是MyBatis的关键对象。SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象类获得,而SqlSessionFactoryBuilder则可以从XML配置文件或一个预先定制的Configuration的实例构建出SqlSessionFactory的实例。每一个MyBatis            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-22 21:12:00
                            
                                35阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            SqlSession is the primary Java interface for working with MyBatis. Through this interface you can execute commands, get mappers and manage transactions. SqlSession是Mybatis的核心接口。它里面封装了操作数据库的如增删改查的API以及            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-24 09:18:56
                            
                                23阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            SQLSession 的线程安全性取决于具体的实现和配置方式。SQLSession 是 MyBatis 框架中用于执行数据库操作的核心接口之一。以下是关于 SQLSession 线程安全性的一些注意事项:SqlSessionFactory 的线程安全性:SqlSessionFactory 是用于创建 SQLSession 的工厂类。通常情况下,SqlSessionFactory 是线程安全的,因为            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-09-24 22:17:49
                            
                                169阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            16:53:00 2020-06-12  今天上课学习MyBatis时,在老师讲到SqlSession是线程不安全的时候,提到这样一句话:“SqlSession是单线程对象,因为它是非线程安全的,是持久化操作的独享对象,类似JDBC中的Connection,底层就封装了JDBC连接”。我当时就感到疑惑:因为我习惯从字面上去理解一个东西,Connection译为连接,连接之后再开启一个会话,这个会话            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-14 13:33:27
                            
                                47阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            概述在mybatis中定义了SqlSession接口用于封装一个数据库的连接,通过该数据库连接来对数据库发起相关数据库操作请求并获取结果集。SqlSession接口在mybatis中的默认实现为DefaultSqlSession,其中DefaultSqlSession不是线程安全的,即多个需要访问数据库的线程不能共享同一个DefaultSqlSession的对象实例,否则会出现线程之间的数据相互影            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-02 17:18:55
                            
                                421阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            MyBatis与Spring整合后如何保证SqlSession线程安全目录概述小结:参考资料和推荐阅读 LD is tigger forever,CG are not brothers forever, throw the pot and shine forever. Modesty is not false, solid is not naive, treacherous but not de            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-11 09:55:26
                            
                                215阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            SqlSessionFactory的作用Mybatis代码在一开始的使用首先就是进行xml文件的解析, 把所有配置都要存入Configuration对象中, SqlSessionFactory的作用就是创建SqlSession , SqlSession 就是一个接口, 定义了调用Statemment 和传入参数 调用sql语句, 所以sqlsession是可以当作sql执行的一个对象。在创建出Se            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-15 15:13:42
                            
                                27阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            SqlSession是Mybatis最重要的接口之一,可以简单的认为Mybatis一系列的配置目的是生成类似JDBC生成的Connection对象的SqlSession对象,这样才能与数据库开启“沟通”,通过SqlSession可以实现增删改查(当然现在更加推荐是使用Mapper接口形式),那么它是如何执行实现的,这就是本篇博文所介绍的东西,其中会涉及到简单的源码讲解。从上文中我们学习到Mappe            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-29 12:36:50
                            
                                39阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            mybatis的缓存主要是分为两种:一级缓存和二级缓存:一级缓存:一直开启,不能关闭,默认是session级别的,但是可以设置成statement级别。session级别:表现为---MyBatis执行SQL语句之后,这条语句就是被缓存,以后再执行这条语句的时候,会直接从缓存中拿结果,而不是再次执行SQL。但是在两个相同的查询之间,如果当前数据被修改,会进行两次查询。作用域是SqlSession级            
                
         
            
            
            
            前言Spring事务的一个奇怪的问题。朋友问了我一个技术的问题(朋友实在是好学,佩服!)该问题来源知乎(synchronized锁问题):https://www.zhihu.com/question/277812143开启10000个线程,每个线程给员工表的money字段【初始值是0】加1,没有使用悲观锁和乐观锁,但是在业务层方法上加了synchronized关键字,问题是代码执行完毕后数据库中的            
                
         
            
            
            
            【mybatis-SqlSession的方法总结】 
     SqlSession 实例在 MyBatis 中是非常强大的一个类。SqlSession 实例中有所有执行语句的方法,提交或回滚事务,还有获取映射器实例。 在 SqlSession 类中有超过 20 个方法,所以将它们分开成易于理解的组合。 语句执行方法:这些方法被用来执行定义在 SQL 映射的 XML            
                
         
            
            
            
            1 SqlSession sqlSessionFactoryBean,主要作用是通过getObject得到sqlSessionFactory,同时可以设置数据源,mybatis基本配置等。 sqlSessionFactory,用于创建sqlSession的工厂方法。 sqlSession,执行sql命令的会话。MapperFactoryBean,创建mapper的工厂类,getObject()得到            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-11 12:45:47
                            
                                39阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            最近在看Mybatis源码,对于理解SqlSessionTemplate是如何保证线程安全的网上的文章不多。希望通过本文能够帮助大家清楚理解,类关系图如下:DefaultSqlSession与SqlSessionManager解析在Mybatis中SqlSession默认有DefaultSqlSession和SqlSessionManager两个实现类DefaultSqlSession是真正的实现            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-10 20:57:46
                            
                                59阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             MyBatis 核心配置文件properties 定义属性及读取属性文件settings 设置运行时行为typeAliases 类型别名定义单个别名批量定义别名typeHandlers 类型处理器Plugins(后续有文章专门介绍这个)Environments 运行环境databaseIDProvider 定义数据库厂商mappers 加载映射文件mapper resource=" "mappe            
                
         
            
            
            
            SqlSession 实例在 MyBatis 中是非常强大的一个类。在这里你会看到所有执行语句、提交或回滚事务和获取映射器实例的方法。在 SqlSession 类中有超过 20 个方法,所以将它们组合成易于理解的分组。执行语句方法这些方法被用来执行定义在 SQL 映射的 XML 文件中的 SELECT、INSERT、UPDATE 和 DELETE 语句。它们都会自行解释,每一句都使用语句的 ID            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-19 07:33:33
                            
                                45阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            目录(?) 
[+] 
创建Executor的创建Mapper创建MapperProxy的invokeExecutorCacheExecutor普通ExecutorStatementHandler创建初始化参数设置结果处理 前面的章节主要讲mybatis如何解析配置文件,这些都是一次性的过程。从本章开始讲解动态的过程,它们跟应用程序对mybatis的调用密切相关。本章先从sqlsession开始。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-16 13:46:24
                            
                                24阅读
                            
                                                                             
                 
                
                             
         
            
            
            
               SqlSession的运行过程是mybatis的重点和难点,也是整个mybatis比较难以理解的部分。SqlSession是一个接口,使用它并不复杂。我们构建SqlSessionFactory就可以轻易地拿到SqlSession了。SqlSession给出了查询,插入,更新,删除的方法,在旧版的mybatis或ibatis中常常使用这些接口方法,而在新版本的mybatis            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-11 05:51:05
                            
                                26阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            首先我先解释一下标题四大对象是指:executor, statementHandler,parameterHandler,resultHandler对象。(为了方便下面的文章说道四大对象就专指它们)它们都是sqlSession的底层类实现,也是插件能够拦截的四大对象。所以这里已经触及了MyBATIS的底层,动态代理,反射随时可以看到,如果没有第一篇作为基础,你将十分难以理解它。了解他们的协作,是            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-05 20:12:11
                            
                                50阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            MyBatis 流程梳理MyBatis 原理图: SqlSession:MyBatis最核心的就是创建一个SqlSession对象去获取要我们要操作的mapper并执行CRUD操作,SqlSession对象就好比是JDBC中的Connection对象,它是线程不安全的,每次使用都需要开启一个新的SqlSession对象,使用完毕正常关闭。但是SqlSession是一个接口,那我们如何去创建SqlS            
                
         
            
            
            
            目录一、线程二、线程不安全产生的原因三、确保线程安全的方法1.限制数据共享2.不可变性3.使用线程安全的数据类型4.锁与同步 一、线程并发模块有两种类型:进程(Process)与线程(Thread)。一个进程表示一个虚拟计算机,一个线程表示一个虚拟CPU,线程之间共享内存,可以互相通信。 Java中提供了Thread类,继承Runnable接口。Thread类可以如下使用:Thread thre            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-19 15:13:45
                            
                                111阅读
                            
                                                                             
                 
                
                                
                    