JDBC实现事务(transaction)
1.事务的开启connection.setAutoCommit(false);
2.中间语句是事务的执行语句
3.事务的提交connection.commit();
package JDBCTest;
import JDBCTest.utils.JdbcUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class TransactionTest {
public static void main(String[] args) {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
connection = JdbcUtils.getConnection ();
//关闭数据库的自动提交,会自动开启事务
connection.setAutoCommit (false);//开启事务
String sql1 = "update account set money=money-400 where name=‘A‘";
preparedStatement = connection.prepareStatement (sql1);
preparedStatement.executeUpdate ();
String sql2 = "update account set money=money+400 where name=‘B‘";
preparedStatement = connection.prepareStatement (sql2);
preparedStatement.executeUpdate ();
connection.commit ();//提交事务
System.out.println ("成功!");
} catch (SQLException e) {
e.printStackTrace ();
} finally {
JdbcUtils.release (connection,preparedStatement,null);
}
}
}
create table account
(
name varchar(10) null,
money int null,
id int auto_increment
primary key
);
SQL事务