JDBC更新数据
JDBC更新数据
数据的更新是一个很常见的需求, 而且在数据的更新的时候很可能会要考虑到事务的原子性,
一个事务中多个操作要拿都成功要么都失败.
Demo: SCOTT 转账给 JAMES 100元
1 public class TestMysql { 2 //取得连接 3 private static Connection conn =ConnectionUitl.getConnection(); 4 5 public static void main(String[] args) { 6 updateDeposit(100.0); 7 } 8 9 public static int updateDeposit(Double deposit) { 10 String sql1 = "UPDATE emp SET deposit = deposit-"+deposit+"WHERE ename='SCOTT'"; 11 String sql2 = "UPDATE emp SET deposit = deposit+"+deposit+"WHERE ename='JAMES'"; 12 13 //获取发送 sql 语句的对象 14 try { 15 //取消事务的自动提交 16 conn.setAutoCommit(false); 17 PreparedStatement pst1 = conn.prepareStatement(sql1); 18 PreparedStatement pst2 = conn.prepareStatement(sql2); 19 //执行 sql 语句 20 pst1.executeUpdate(); 21 pst2.executeUpdate(); 22 //提交事务 23 conn.commit(); 24 return 2; 25 } catch (Exception e) { 26 try { 27 conn.rollback(); 28 } catch (SQLException e1) { 29 e1.printStackTrace(); 30 } 31 e.printStackTrace(); 32 } finally { 33 ConnectionUitl.close(conn); 34 } 35 return 0; 36 } 37 }