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,只有这样才能支持事务
 1 CREATE DATABASE IF NOT EXISTS testdb_a    DEFAULT CHARACTER SET utf8; 
 2 
 3 USE testdb_a; 
 4 
 5 DROP TABLE IF EXISTS tab_a; 
 6 
 7 CREATE TABLE tab_a ( 
 8     id bigint(20) NOT NULL, 
 9     name varchar(60) DEFAULT NULL, 
10     address varchar(120) DEFAULT NULL, 
11     PRIMARY KEY (id) 
12 ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
13 
14 
15 CREATE DATABASE IF NOT EXISTS testdb_b    DEFAULT CHARACTER SET utf8; 
16 
17 USE testdb_b; 
18 
19 DROP TABLE IF EXISTS tab_b; 
20 
21 CREATE TABLE tab_b ( 
22     id bigint(20) NOT NULL, 
23     name varchar(60) DEFAULT NULL, 
24     address varchar(120) DEFAULT NULL, 
25     PRIMARY KEY (id) 
26 ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
View Code

建立项目testJOTM

2.1 建立项目后,准备依赖的类库,结构如下

spring+jotm+ibatis+mysql实现JTA分布式事务

2.2 主要代码

 1 /**
 2  * 测试JOTM的Service
 3  *
 4  * @author leizhimin 2009-6-25 12:53:55
 5  */
 6 public interface StuJotmService {
 7     /**
 8      * 同时保存TabA、TabB
 9      *
10      * @param a
11      *            TabA对象
12      * @param b
13      *            TabB对象
14      */
15     void saveAB(TabA a, TabB b);
16 
17     /**
18      * 同时更新TabA、TabB
19      *
20      * @param a
21      *            TabA对象
22      * @param b
23      *            TabB对象
24      */
25     void updateAB(TabA a, TabB b);
26 
27     /**
28      * 删除指定id的TabA、TabB记录
29      *
30      * @param id
31      *            指定id
32      */
33     void deleteABif(Long id);
34 }
StuJotmService

相关文章: