https://www.ibm.com/developerworks/cn/java/j-lo-ibatis-principle/
http://blog.csdn.net/gaolu/article/details/53415420
没办法不得不仔细看看数据库内部的调用情况了。
总体来说ibatis内部功能分为两大类吧;
1、sqlmapclient,用于处理参数映射,结果映射,语句处理等;
2、sqlmapsession,定义客户端在当前线程中的执行环境
另外:SqlMapExecutorDelegate 执行代理类,耦合了以上两者。
sqlmapClientImpl中,保存了代理执行类,根据线程不同保存了sqlMapSession(为何每个线程对应一个session)
sqlMapSession中,保存了代理执行类,以及sessionScope
配置文件中的几个概念:
Datasource 数据源,javax.sql.DataSource:提供连接的工厂,这个接口的实现是由驱动开发者提供的。这个接口就一个方法getConnection(),用于建立一个数据源的连接。有各种各样的datasource,阿里这边用的就是tddl-TGroupDataSource
Connection:一个与特定数据库的连接或session,在这个connection中可以执行语句或者返回结果。有创建语句,预编译语句,自动提交,默认是自动提交--执行完sql语句并提交保存在数据库中。另外还有commit,rollback,close等方法
只要有了datasource就可以进行数据库操作了,其他第三方会提供一些类方便操作。
sqlMapClient,ibatis用于解析xml配置文件
transactionManager,org.springframework.jdbc.datasource.DataSourceTransactionManager;
是PLatformTransactionManager的实现类,该接口是spring事务架构的核心接口,只有三个核心方法,获取事务,提交事务以及回滚。
transactionTemplate, org.springframework.transaction.support.TransactionTemplate;
transactionTemplate也是用于事务管理的类,可以以编程式实现事务。
详细用法:http://andylele.blog.sohu.com/142207434.html
先new一个DefaultTransactionDefinition,设置传播属性,然后通过transctionManager的getTransaction方法返回TransactionStatus,这个就是事务对象,然后执行sql语句,最后进行commint或着rollback 事务对象即可。
--先了解下transactionManager的原理,发现还有jpaTransactionManager
其实不管是sql执行或者是事务,都是针对connection做文章。
http://blog.csdn.net/gaolu/article/details/53415420
没办法不得不仔细看看数据库内部的调用情况了。
总体来说ibatis内部功能分为两大类吧;
1、sqlmapclient,用于处理参数映射,结果映射,语句处理等;
2、sqlmapsession,定义客户端在当前线程中的执行环境
另外:SqlMapExecutorDelegate 执行代理类,耦合了以上两者。
sqlmapClientImpl中,保存了代理执行类,根据线程不同保存了sqlMapSession(为何每个线程对应一个session)
sqlMapSession中,保存了代理执行类,以及sessionScope
配置文件中的几个概念:
Datasource 数据源,javax.sql.DataSource:提供连接的工厂,这个接口的实现是由驱动开发者提供的。这个接口就一个方法getConnection(),用于建立一个数据源的连接。有各种各样的datasource,阿里这边用的就是tddl-TGroupDataSource
Connection:一个与特定数据库的连接或session,在这个connection中可以执行语句或者返回结果。有创建语句,预编译语句,自动提交,默认是自动提交--执行完sql语句并提交保存在数据库中。另外还有commit,rollback,close等方法
只要有了datasource就可以进行数据库操作了,其他第三方会提供一些类方便操作。
sqlMapClient,ibatis用于解析xml配置文件
transactionManager,org.springframework.jdbc.datasource.DataSourceTransactionManager;
是PLatformTransactionManager的实现类,该接口是spring事务架构的核心接口,只有三个核心方法,获取事务,提交事务以及回滚。
transactionTemplate, org.springframework.transaction.support.TransactionTemplate;
transactionTemplate也是用于事务管理的类,可以以编程式实现事务。
详细用法:http://andylele.blog.sohu.com/142207434.html
先new一个DefaultTransactionDefinition,设置传播属性,然后通过transctionManager的getTransaction方法返回TransactionStatus,这个就是事务对象,然后执行sql语句,最后进行commint或着rollback 事务对象即可。
--先了解下transactionManager的原理,发现还有jpaTransactionManager
其实不管是sql执行或者是事务,都是针对connection做文章。