一、java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。
二、java事务的四大属性:原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。
三、具体例子:
1、JDBC事务
private Connection conn = null;
private PreparedStatement ps = null;
try {
conn.setAutoCommit(false); //将自动提交设置为false
ps.executeUpdate("修改SQL"); //执行修改操作
ps.executeQuery("查询SQL"); //执行查询操作
conn.commit(); //当两个操作成功后手动提交
} catch (Exception e) {
conn.rollback(); //一旦其中一个操作出错都将回滚,使两个操作都不成功
e.printStackTrace();
}2、JTA事务
InitialContext ic = new InitialContext();
Object txObj = ic.lookup("java:comp/UserTransaction";);
UserTransaction ut = (UserTransaction) txObj;
ut.begin();
DataSource db1 = (DataSource)ic.lookup("java:comp/env/OrdersDB");
DataSource db2 = (DataSource)ic.lookup("java:comp/env/InventoryDB");
Connection con1 = db1.getConnection();
Connection con2 = db2.getConnection();
// perform updates to OrdersDB using connection con1
// perform updates to InventoryDB using connection con2
ut.commit();
3、容器事务
局限于EJB应用使用