JDBC事务

1. 说说jdbc的事务?(转载)

JDBC的一切行为包括事务是基于一个Connection的,在JDBC中是通过Connection对象进行事务管理。在JDBC中,常用的和事务相关的方法是: setAutoCommit、commit、rollback等。

下面看一个简单的JDBC事务代码:

public void JdbcTransfer() {
java.sql.Connection conn = null;
try{
conn = conn =DriverManager.getConnection(“jdbc:oracle:thin:@host:1521:SID”,”username”,”userpwd”);
// 将自动提交设置为 false,
//若设置为 true 则数据库将会把每一次数据更新认定为一个事务并自动提交
conn.setAutoCommit(false);

     stmt = conn.createStatement(); 
     // 将 A 账户中的金额减少 500 
     stmt.execute("\
     update t_account set amount = amount - 500 where account_id = 'A'");
     // 将 B 账户中的金额增加 500 
     stmt.execute("\
     update t_account set amount = amount + 500 where account_id = 'B'");

     // 提交事务
     conn.commit();
     // 事务提交:转账的两步操作同时成功
 } catch(SQLException sqle){            
     try{ 
         // 发生异常,回滚在本事务中的操做
        conn.rollback();
         // 事务回滚:转账的两步操作完全撤销
         stmt.close(); 
         conn.close(); 
     }catch(Exception ignore){ 

     } 
     sqle.printStackTrace(); 
 } 

}
上面的代码实现了一个简单的转账功能,通过事务来控制转账操作,要么都提交,要么都回滚。

JDBC事务的优缺点

JDBC为使用Java进行数据库的事务操作提供了最基本的支持。通过JDBC事务,我们可以将多个SQL语句放到同一个事务中,保证其ACID特性。JDBC事务的主要优点就是API比较简单,可以实现最基本的事务操作,性能也相对较好。

但是,JDBC事务有一个局限:一个 JDBC 事务不能跨越多个数据库!!!所以,如果涉及到多数据库的操作或者分布式场景,JDBC事务就无能为力了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值