简介:
本项目使用springboot2.0.5+jpa+mysql+druid+atomikos实现jta事务管理,请注意druid与mysql的jar包版本适配,否则可能会出现异常。
一、相关链接
事务相关的基础知识:https://blog.csdn.net/u013789656/article/details/80928299
XA协议原理:https://blog.csdn.net/ggibenben1314/article/details/48812501
Jta事务的实现原理:https://www.ibm.com/developerworks/cn/java/j-lo-jta/
Jta事务的官方配置文档:https://spring.io/blog/2011/08/15/configuring-spring-and-jta-without-full-java-ee/
Druid连接池配置官方文档:https://github.com/alibaba/druid/wiki/DruidDataSource%E9%85%8D%E7%BD%AE
本项目的github地址:https://github.com/Alexshi5/demo-jtatransaction
二、Maven依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--spring data jpa-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--mysql jdbc-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--druid pool-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.9</version>
</dependency>
<!--atomikos jta transaction manager-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jta-atomikos</artifactId>
</dependency>
</dependencies>
三、实体类
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long oid;
private String username;
private String pwd;
//...getter
//...setter
}
@Entity
@Table(name = "user_info")
public class UserInfo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long oid;
@Column(name = "desc_info")
private String descInfo;