4 事 务 *****
Jdbc来操作事物 完成转账功能
4.1 开发步骤
1 获取链接
2 开启事物
3 获取PreparedStatement
4 使用PreparedStatement 两次更新操作
5 正常情况下提交事物
6 出现异常 回滚事物
7 关闭资源
package demo2;
import JdbcUtils.JdbcUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/*
*模拟银行的转业务
* **/
public class Demo1Transcation {
private static Connection conn;
private static PreparedStatement ps;
public static void main(String[] args) {
//1获取数据库连接
try {
conn = JdbcUtils.getConnection();
//开启事务
conn.setAutoCommit(false);
//获取执行平台preparedStatement
ps = conn.prepareStatement("update coount set money=money-? where cname=?");
//使用PreparedStatement两次操作
ps.setDouble(1,500);
ps.setString(2,"deng");
ps.executeUpdate();
ps = conn.prepareStatement("update coount set money=money+? where cname=?");
ps.setDouble(1,500);
ps.setString(2,"xin");
ps.executeUpdate();
//提交事务
conn.commit();
System.out.println("转账成功");
} catch (SQLException e) {
//事务回滚
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
System.out.println("转账失败");
}finally {
JdbcUtils.close(ps,conn);
}
}
}