spring+jotm+ibatis+mysql实现JTA分布式事务
2017-08-08 21:25
281 查看
1 环境
1.1 软件环境
spring-framework-2.5.6.SEC01-with-dependencies.zip
ibatis-2.3.4
ow2-jotm-dist-2.1.4-bin.tar.gz
MySQL-5.1
JDK1.5
1.2 创建数据库环境
注意mysql里数据库引擎为InnoDB,只有这样才能支持事务。
sql-map-config_B.xml
2.3 测试效果
先运行Test文件,可以看到两个库两个表都正常插入值。
再把TabA的setId改为其他任意一个长整型,那么TabB肯定会报主键重复错,因为TabB的setId没改,那么如果事务生效的话,最后应该是两张表都没插入值,如果事务没生效,那么TabA会插入一条新的数据。
2.3 完整结构
完整代码下载:
1.1 软件环境
spring-framework-2.5.6.SEC01-with-dependencies.zip
ibatis-2.3.4
ow2-jotm-dist-2.1.4-bin.tar.gz
MySQL-5.1
JDK1.5
1.2 创建数据库环境
注意mysql里数据库引擎为InnoDB,只有这样才能支持事务。
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE sqlMapConfig 3 PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" 4 "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> 5 6 <sqlMapConfig> 7 <settings cacheModelsEnabled="true" enhancementEnabled="true" 8 lazyLoadingEnabled="true" errorTracingEnabled="true" 9 useStatementNamespaces="true"/> 10 11 <sqlMap resource="com/lavasoft/stu/jtom/entity/sqlmap/TabB.xml"/> 12 13 </sqlMapConfig>
sql-map-config_B.xml
1 public class Test { 2 private static ApplicationContext ctx = ApplicationContextUtil.getApplicationContext(); 3 private static StuJotmService ser = (StuJotmService) ctx.getBean("stuJotmService"); 4 5 public static void test_() { 6 TabA a = new TabA(); 7 a.setId(2L); 8 a.setName("aaa4"); 9 a.setAddress("address a4"); 10 11 TabB b = new TabB(); 12 b.setId(3L); 13 b.setName("bbb3"); 14 b.setAddress("address b5"); 15 16 ser.saveAB(a, b); 17 } 18 19 public static void main(String[] args) { 20 test_(); 21 } 22 }
2.3 测试效果
先运行Test文件,可以看到两个库两个表都正常插入值。
再把TabA的setId改为其他任意一个长整型,那么TabB肯定会报主键重复错,因为TabB的setId没改,那么如果事务生效的话,最后应该是两张表都没插入值,如果事务没生效,那么TabA会插入一条新的数据。
2.3 完整结构
完整代码下载:
相关文章推荐
- Spring+iBatis+JOTM实现JTA事务
- Spring+iBatis+JOTM实现JTA事务
- Springboot+Atomikos+Jpa+Mysql实现JTA分布式事务
- SpringMVC Resetful+Hibernate+MySQL实现增删改查操作
- springboot+mysql实现quartz集群搭建
- Springmvc+mybatis+mysql+ajax实现分页
- 使用Spring实现读写分离( MySQL实现主从复制)
- 使用Spring实现读写分离( MySQL实现主从复制)
- 使用Spring实现读写分离( MySQL实现主从复制)
- Spring+iBatis+Atomikos实现JTA事务
- 基于ExtJs6前台,SpringMVC-Spring-Mybatis,resteasy,mysql无限极表设计,实现树状展示数据(treepanel)
- 利用spring+quartz-scheduler+MySql实现定时任务动态调整
- Spring+Jersey+Hibernate+MySQL+HTML实现用户信息增删改查案例(附Jersey单元测试)
- mysql+spring+mybatis实现数据库读写分离[代码配置]
- spring集成mybatis实现mysql读写分离
- Spring+iBatis+Atomikos实现JTA事务
- easyui+spring+springmvc+ibatis学习(二)----之登陆实现
- spring-jdbc实现mysql读写分离
- iBatis整理——iBatis批处理实现(Spring环境)
- maven+springmvc+spring+ibatis+velocity+mysql搭建简单登陆系统