JDBC事务的简单使用
时间:2021-07-01 10:21:17
帮助过:4人阅读
java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBC_transactions {
public static void main(String[] args) {
//使用try-with-resources的方法自动关闭连接
//首先还是先初始化驱动
try {
Class.forName("com.mysql.jdbc.Driver"
);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
//连接数据库
try (Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8", "root", "admin"
);
Statement statement =
connection.createStatement();) {
//执行一个事务
//首先关闭自动提交
connection.setAutoCommit(
false);
//执行两个更新语句,一个增加某个字段,一个减少某个字段
String sql1="update hero set hp=hp-10 where id=1"
;
String sql2="update hero set hp=hp+10 where id=1"
;
statement.execute(sql1);
statement.execute(sql2);
//手动提交
connection.commit();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
这句话就是关闭自动提交。
connection.setAutoCommit(false);
一直到
connection.commit();
这两句话内的sql语句就是一个事务。如果我们故意制造个错误,比如故意写错sql语句的某个关键字,编译器会报错,并且正确的sql语句不会提交。
JDBC事务的简单使用
标签:ring character encoding 使用 create cte commit sql ati