首页 > 其他分享 >JDBC事务管理概述和实现

JDBC事务管理概述和实现

时间:2022-10-18 14:15:37浏览次数:59  
标签:事务管理 事务 JDBC 概述 500 pstmt1 pstmt2 null conn

1. 事务:一个包含多个步骤的业务操作。如果这个业务操作被事务管理,则这多个步骤要么同时成功,要么同时失败。
2. 操作:
  1. 开启事务
  2. 提交事务
  3. 回滚事务
3. 使用Connection对象来管理事务
  * 开启事务:setAutoCommit(boolean autoCommit) :调用该方法设置参数为false,即开启事务
    * 在执行sql之前开启事务
  * 提交事务:commit()
    * 当所有sql都执行完提交事务
  * 回滚事务:rollback()
    * 在catch中回滚事务

4. 代码:

public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement pstmt1 = null;
        PreparedStatement pstmt2 = null;
        try {
            // 1.获取连接
            conn = JDBCUtils.getConnection();
            // 开启事务
            conn.setAutoCommit(false);
            // 2.定义sdql
            // 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);

            // 执行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);
        }
    }

 

标签:事务管理,事务,JDBC,概述,500,pstmt1,pstmt2,null,conn
From: https://www.cnblogs.com/xuche/p/16802346.html

相关文章

  • JDBC工具类-JDBC练习-登录案例
    *目的:简化书写*分析: 1.注册驱动也抽取 2.抽取一个方法获取连接对象 *需求:不想传递参数(麻烦),还得保证工具类的通用性。 *解决:配置文件 ......
  • 软件需求设计UML全程实例剖析幻灯片(概述)201904更新
    ......
  • JDBC练习-select语句和JDBC工具类
    JDBC练习-select语句练习:定义一个方法,查询emp表的数据将其封装为对象,然后装载集合,返回。1.定义Emp类封装Emp表数据的JavaBean2.实现方法public List<Emp>findA......
  • JDBC工具类
        ......
  • JDBC
    JDBC概念:JDBC就是使用Java语言操作关系型数据库的一套API全称:(JavaDataBaseConnectivity)Java 数据库连接JDBC本质:官方(sun公司)定义的一套操作所有关系型数据库的规则......
  • 554JDBC事务管理 Jdbc事务管理 and555JDBC管理事务_概述 556JDBC管理事务实现
    JDBC事务管理1.Preparedstatement:执行sql的对象1.SQL注入问题:在拼接sql时,有一些的sql的特殊关键字参与字符串的拼接。会造成安全性问题2.用户随便输入:例如dawug......
  • JdbcConfig
    JdbcConfigjdbc.properties注解版@Value("${jdbc.driver}")privateStringdriver;@Value("${jdbc.url}")privateStringurl;@Value("${jdbc.use......
  • Redis6.2基础概述
    Redis密码管理:所有库使用同一个密码进行统一管理.库的操作......
  • day49-JDBC和连接池05
    JDBC和连接池0511.BasicDAO先来分析一个问题前面我们使用了Apache-DBUtils和Druid简化了JDBC开发,但仍存在以下不足:SQL语句是固定的,不能通过参数传入,通用性不好,需要......
  • 【数据库】期末必知必会-----第一章 数据库概述
    第一章数据库概述1、数据库相关的基本概念:?DB:数据库,相互关联的数据集合DBMS:数据库管理系统,管理数据库的软件,负责数据库的访问、管理和控制DBS:数据库系统,是指在计算机系统中......