事务:有三种类型:
1、JDBC事务
2、JTA事务(java Transaction API)事务
3、容器事务
1、JDBC事务是用Connection对象控制的,JDBC Connection接口(java.sql.connection)提供了两种事务模式:自动提交和手动提交。
public void setAutocommited(boolean)
public boolean getAutoCommited()
public void commit()
public void rollback()
代码示例:
private Connection conn=null;
private PreparedStatement ps=null;
try{
conn.setAutoCommited(false);//将自动提交设置为false,即改为手动提交
ps.executeUpdate(“修改SQL”);//预编译语句执行修改操作
ps.excuteQuery(“查询SQL”);//预编译语句执行查询操作
conn.commit();//当两个操作成功过后手动提交
}catch(Exception e){
conn.rollback();//一旦某个操作失败都将回滚
e.printStackTrace();
}
特点:事务的范围局限于一个数据库连接,一个JDBC事务不能跨越多个数据库
2、JTA事务允许程序执行分布式事务处理,使用此事务,需要一个实现javax.sql.XADataSource、javax.sql.XAConnection和javax.sql.XAResource接口的JDBC驱动程序,一个XADataSource对象就是一个XAConnection对象的工厂,XAConnections是参与JTA事务的JDBC连接,对于XA的连接不能调用java.sql.Connection.commit()或者
java.sql.Connection.rollback()
而是应该调用
UserTransaction.begin()、
UserTransaction.commit()和
UserTransaction.rollback()
特点:可以跨越多个数据库,功能呢强大,使用复杂
3、容器事务由j2EE应用服务器提供的,容器事务大多基于JTA完成,是一个基于JNDI的相当复杂的API实现,

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐