JDBC事务支持及try-with-resources

JDBC事务支持及try-with-resources,第1张

概述JDBC事务支持 JDBC连接的事务支持由Connection对象提供,且默认自动提交,即默认事务是关闭的状态。也就是说,SQL语句执行将会立即提交至数据库,永久生效。 JDBC中关于事务的 *** 作: 需 JDBC事务支持

JDBC连接的事务支持由Connection对象提供,且默认自动提交,即默认事务是关闭的状态。也就是说,SQL语句执行将会立即提交至数据库,永久生效。

JDBC中关于事务的 *** 作:

conn.setautoCommit(false);	//关闭自动提交,开启事务/*下面俩需要在开启事务之后才能使用*/conn.commit();				//提交事务conn.rollback();			//回滚事务

需要注意的是:当遇到一个未处理的sqlException的异常时,系统会非正常退出,事务会自动回滚。但如果显式捕捉该异常,则需要显式地回滚事务。

try-with-resources

Java7增强的try语句的功能,保证那些实现Closeable接口的实现类能够自动关闭资源,不用显示的finally关闭资源。

细节可参考参考:JDK7的try-with-resource方式的使用

package cn.my.jdbcTransaction;import cn.my.jdbcPra.util.JDBCUtils;import java.sql.Connection;import java.sql.PreparedStatement;/** * @auther Summerday * JDBC的事务支持 */public class JDBCDemo {    public static voID main(String[] args) {        //获取连接        try (Connection conn = JDBCUtils.getConnection()) {            //关闭自动默认提交,开启事务            conn.setautoCommit(false);            //定义sql            //-500            String sql1 = "update account set balance = balance - ? where ID = ?";            //+500            String sql2 = "update account set balance = balance + ? where ID = ?";            //执行sql对象的prs            try (PreparedStatement prs1 = conn.prepareStatement(sql1);                 PreparedStatement prs2 = conn.prepareStatement(sql2)) {                //设置参数                prs1.setDouble(1,500);                prs1.setInt(2,1);                prs2.setDouble(1,500);                prs2.setInt(2,2);                //执行sql1语句                prs1.executeUpdate();                //执行sql2语句                prs2.executeUpdate();            } catch (Exception e) {                System.out.println("roll back");                conn.rollback();            }            //提交事务            conn.commit();            System.out.println("commit!");        } catch (Exception e) {            e.printstacktrace();        }    }}
总结

以上是内存溢出为你收集整理的JDBC事务支持及try-with-resources全部内容,希望文章能够帮你解决JDBC事务支持及try-with-resources所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1151870.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存