美文网首页
JSP操作数据库的事务回滚

JSP操作数据库的事务回滚

作者: 追随你的直觉 | 来源:发表于2019-08-06 11:17 被阅读0次

基础介绍

1.先设置为手动提交

conn.setAutoCommit(false); //将自动提交设置为false 

2.若成功则提交

conn.commit(); //当操作成功后手动提交 

3.若失败则回滚

conn.rollback(); //一旦其中一个操作出错都将回滚,使两个操作都不成功

代码演示

注:由于各种写法,文件结构等都各不相同,此处仅供参考。

1.演示删除主表,外键,文件,同时成功,失败返回。

2.因为文件删除了,撤回很麻烦,所以选择最后删除文件,删除文件成功在提交。

3.注意别忘了异常时回滚,以及关闭数据库的调用。


Map<String, Object> rtmap = new HashMap();

try {

        conn.setAutoCommit(false);  //将自动提交设置为false 

        sql = "delete from xxx where xiaozu_id=?";

        pstmt = conn.prepareStatement(sql);

        pstmt.setString(1, xxx);

        int ok = pstmt.executeUpdate();

        if (ok > 0) {

            sql = "delete from xxx where id=?";

            pstmt = conn.prepareStatement(sql);

            pstmt.setString(1, xxx);

            int insert_rs = pstmt.executeUpdate();

            if (insert_rs > 0) {

                //删除---文件

                 if (new File(fileName).delete()) {

                        rtmap.put("msg", "success");

                        conn.commit();      //当两个操作成功后手动提交 

                    } else {

                        rtmap.put("msg", "删除文件失败");

                        conn.rollback();    //一旦其中一个操作出错都将回滚,使两个操作都不成功 

                    }

            } else {

                rtmap.put("msg", "删除xx失败");

            }

            conn.commit();      //当两个操作成功后手动提交 

        } else {

            rtmap.put("msg", "删除图片失败");

        }

    } catch (Exception ex) {

        conn.rollback();    //一旦其中一个操作出错都将回滚,使两个操作都不成功 

        rtmap.put("msg", "java程序GG了!");

        ex.printStackTrace();

    } finally {

        out.println(JSON.toJSON(rtmap));

        if (rs != null) {

            rs.close();

        }

        if (pstmt != null) {

            pstmt.close();

        }

        if (conn != null) {

            conn.close();

        }

    }

相关文章

  • spring事务

    1、什么是事务事务和数据库操作有关,commit事务提交,rollback事务回滚事务作用:保证一组和数据库有关的...

  • 【Mysql】-5 事务

    事务概述 事务提交 事务回滚 事务概述 事务是只用户定义的一系列数据库更新、修改操作,这些操作要么都不执行,要么都...

  • laravel transaction 数据库事务

    laravel 提供专门的闭包的数据库事务,可以自动回滚事务也可以手动回滚事务

  • JSP操作数据库的事务回滚

    基础介绍 1.先设置为手动提交 conn.setAutoCommit(false); //将自动提交设置为fal...

  • Mysql事务&隔离级别

    数据库事务:ACID特性 原子性: 事务中所有操作要么全部提交成功,要么全部失败回滚。 u...

  • sql-03表记录的操作

    基本操作 有关事务回滚的操作

  • ios数据存储--事务简单使用

    FMDB事务: 在一个事务里面的操作,要么都成功,要么都不成功(不成功,数据库回滚) ||微云网盘:事务demo

  • 数据库事务

    提交操作(事务成功) start transaction DML语句 commit 回滚操作(事务失败) star...

  • mysql 事务回滚,online ddl

    回滚当事务中有DDL时,事务回滚会出错,当事务中只有DML时,回滚一般不会出问题DDL:新建表等操作DML:数据插...

  • Mysql中myisam和innodb的区别

    一:原子性 原子性是指事务包含的所有操作要么成功,要么全部失败回滚。事务的操作如果成功就必须要完全应用到数据库,如...

网友评论

      本文标题:JSP操作数据库的事务回滚

      本文链接:https://www.haomeiwen.com/subject/bhhidctx.html