JDBC事务机制
jdbc中的事务是默认提交的。
运行前的数据库数据:
代码:
package com.happy.lesson1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.ResourceBundle;
public class JDBCTest10 {
public static void main(String[] args) throws Exception {
ResourceBundle bundle = ResourceBundle.getBundle("JDBC");
String driver = bundle.getString("driver");
String url = bundle.getString("url");
String user = bundle.getString("user");
String password = bundle.getString("password");
//1.注册驱动
Class.forName(driver);
//2.获取连接
Connection conn = DriverManager.getConnection(url,user,password);
//3.获取数据库操作对象
String sql = "update t_act set balance = ? where actno = ?";//处理sql语句
PreparedStatement ps = conn.prepareStatement(sql);
//传值
//111转账10000元给222
ps.setDouble(1,10000);
ps.setInt(2,111);
//4.1执行sql
int count = ps.executeUpdate();
//发生异常
int e = 1/0;
//222收到转账10000元
ps.setDouble(1,10000);
ps.setInt(2,222);
//4.2执行sql
count += ps.executeUpdate();
//5.处理结果集
System.out.println((count==2)?"转账成功":"转账失败");
//6.关闭资源
ps.close();
conn.close();
}
}
运行后的数据库数据:
运行有异常,然而数据库数据发生了变化,111丢失了10000元,但是222却没收到钱。