SQL事务

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
);

相关推荐