实现jdbc事务流程:
- 建立数据库连接;
- 将autoCommit设置为false;
- 执行sql语句;
- 提交;
- 处理异常,如果sql语句执行失败则执行rollBack;
其中,如果执行sql语句过程中抛出异常,不调用commit,提交不会发生,但如果最后执行setAutoCommit(true),提交还是有可能发生。rollback必须显式调用,即便发生异常,执行到setAutoCommit(true)时,提交会自动进行,事务可能执行一一部分。
典型示例如下:
import java.sql.*;
public class TestTranslation {
public static void main(String args[])
{
Statement stmt=null;
Connection conn=null;
try{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost/javatest?user=cheng&password=***");
conn.setAutoCommit(false);
String sqlLine1="update tbl_currency set currency=currency-200,last_modified=current_timestamp WHERE account='A' and currency>=200";
st=conn.createS