• 技术文章 >java >java基础

    java中使用Connection管理事务

    小妮浅浅小妮浅浅2021-03-06 12:31:11原创3028

    在学习JDBC的有关内容后,我们知道可以用它来处理一些事务的问题。那么在具体事务的管理上,需要用到Connection来完成。主要分为三个方面:开启、提交和回滚。下面我们就这些情况,分别进行概念的理解。在掌握了具体的方法后,我们进一步的展开实例代码的学习。

    1、管理事务

    (1)开启事务setAutoCommit

    调用该方法设置参数为false,即开启事务。

    在执行sql之前开启事务。

    (2)提交事务:commit()

    当所有sql都执行完提交事务。

    (3)回滚事务:rollback()

    在catch中回滚事务。

    2、实例

    public static void main(String[] args) {
            Connection conn = null;
            PreparedStatement pstmt1 = null;
            PreparedStatement pstmt2 = null;
            try {
                //1.获取连接
                conn = JDBCUtils.getConnection();
                //开启事务
                conn.setAutoCommit(false);
                //2.定义sql
                //2.1 张三 - 500
                String sql1 = "update account set balance = balance - ? where id = ?";
                //2.2 李四 + 500
                String sql2 = "update account set balance = balance + ? where id = ?";
                //3.获取执行sql对象
                pstmt1 = conn.prepareStatement(sql1);
                pstmt2 = conn.prepareStatement(sql2);
                //4. 设置参数
                pstmt1.setDouble(1,500);
                pstmt1.setInt(2,1);
                pstmt2.setDouble(1,500);
                pstmt2.setInt(2,2);
                //5.执行sql
                pstmt1.executeUpdate();
                // 手动制造异常
                int i = 3/0;
                pstmt2.executeUpdate();
                //提交事务
                conn.commit();
            } catch (Exception e) {
                //事务回滚
                try {
                    if(conn != null) {
                        conn.rollback();
                    }
                } catch (SQLException e1) {
                    e1.printStackTrace();
                }
                e.printStackTrace();
            }finally {
                  //关闭资源
                JDBCUtils.close(pstmt1,conn);
                JDBCUtils.close(pstmt2,null);
            }

    以上就是java中使用Connection管理事务的方法,大家在看懂具体的方法后,可以对代码部分进行运行,对有关操作做到熟练于心。更多Java学习指路:Java基础

    专题推荐:java connection
    品易云
    上一篇:java默认方法sqrt的使用 下一篇:java创造匿名对象的两种方法

    相关文章推荐

    • java中JVM运行时的内存整理• java对象的创建及内存布局• java对象头的两种存储• java数组去重的两种方法• java中的JDBC如何理解?• java之JDBC如何实现验证登录• java默认方法sqrt的使用• java数组的性能分析

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网