有些时候,我们需要绑定执行两个事务,例如银行转账。
具体代码如下:
package com.kx.demo5;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class transformoney {
public static void main(String[] args) throws SQLException {
Connection conn = null;
PreparedStatement ps = null;
try {
conn = jdbcUtil.getConnection();
//关闭自动提交事务
conn.setAutoCommit(false);
String sql1 = "UPDATE account SET balance=balance-? WHERE NAME=?";
ps = conn.prepareStatement(sql1);
ps.setDouble(1, 500);
ps.setString(2, "张三");
ps.executeUpdate();
String sql2 = "UPDATE account SET balance=balance+? WHERE NAME=?";
ps = conn.prepareStatement(sql2);
ps.setDouble(1, 500);
ps.setString(2, "李四");
ps.executeUpdate();
conn.commit();//提交事务
}catch (Exception ex){
conn.rollback(); //事务回滚
ex.printStackTrace();
}finally {
jdbcUtil.close(ps,conn);
}
}
}