JDBC事务的简单使用
发布时间:2020-12-15 07:20:32 所属栏目:Java 来源:网络整理
导读:在实际功能当中,经常会碰到同时对一组数据进行增加和减少,最常见的就是交易功能。 事务内执行的语句,要么都成功,要么都失败,如果有一句没执行成功,整个事务都不会提交的。 import java.sql.Connection; import java.sql.DriverManager; import java.sq
在实际功能当中,经常会碰到同时对一组数据进行增加和减少,最常见的就是交易功能。 事务内执行的语句,要么都成功,要么都失败,如果有一句没执行成功,整个事务都不会提交的。 import 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语句不会提交。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |