多条数据操作--回滚
来源:互联网 发布:网络风险监测预警制度 编辑:程序博客网 时间:2024/04/28 20:38
这几天好多地方都看到作为程序员写博客的重要性,所以让我也投身到革命浪潮中吧
问题
>今天弄javaweb后台时,遇到需要同时insert多个表的需求,因为有多条插入语句,第一个插入成功,第二个插入失败,第二条后的数据没有插入成功,第一条数据就会变成脏数据,因此要回滚
解决办法
用的com.mysql.jdbc.Driver
//连接数据库,conn是我在连接数据库类中留的getConn方法=,=嘿嘿,怕忘留个记号Connection conn = DriverManager.getConnection(url,username,password);conn.setAutoCommit(false);//false为sql操作手动提交,true为每次对数据库操作时自动提交try{ String sql1 = “表1插入数据...”; String sql2 = “表2插入数据...”; stmt.addBatch(sql1); stmt.addBatch(sql2); stmt.executeBatch(); conn.commit();//因为AutoCommit设置为false所以要手动提交 //AutoCommit是true会出现错误:"Can't call rollback when autocommit=true"} catch (SQLException e) { try { conn.rollback();//回滚 } catch (SQLException e1) { System.out.println("rollback错了"); e1.printStackTrace(); } }
PS:当时没弄明白的问题
- 拼sql字符串的时候发现eclipse里字符串不能换行,如果换行要在末尾加引号、第二行用+“内容”的形式
- String sql 用与增删改后,不可以直接将此sql字符串改为该表的查询语句,否则会报错
- ps2.中的错误是:can not issue null query sql,我又试了一下,结果又可以了重复利用了
PL/SQL也可以回滚
sql-定义变量:
//sql:变量 select @id :=2 select @jn :=jname from basicinfoj where jid = @id;
回滚事物:
API : SET XACT_ABORT { ON | OFF }
ON:整个事务将终止并回滚 OFF只回滚产生错误的 Transact-SQL 语句,而事务将继续进行处理
SET XACT_ABORT ONBEGIN TRAN//标记事务开始 删除... 插入... 修改...COMMIT TRAN //提交事务/*执行过程中如果遇到错误,无论哪句遇到错误,所有语句都会回滚到BEGIN TRAN之前的状态*/
0 0
- 多条数据操作--回滚
- mysql 回滚,撤销操作,恢复数据
- jQuery控制位置、滚条操作
- oracle误操作删除数据的回滚
- jdbc事务回滚 批量操作数据 一个例子
- Oracle数据库操作(新建数据库,导入数据,回滚)
- SQL SERVER回滚恢复误操作的数据
- thinkphp多表操作事务回滚
- 回滚操作
- 回滚操作
- oracle回滚操作
- GitHub 回滚操作
- git回滚操作
- 数据回滚
- oracle数据回滚
- 数据回滚
- mysql回滚数据
- Selenium之Web页面滚动条滚操作
- Activity与Service通信之ResultReceiver
- mac 安装wget
- 字符串HASH模板
- POJ2503 字典树
- Copy a file
- 多条数据操作--回滚
- 数据结构:hash桶结构
- 第19章:ListView和Adapter接口实现类
- 也玩before 和after伪元素玩五颜六色的导航
- XMLHttpRequest Level 2 使用指南
- 静态配置ip
- mac os 配置maven
- style、currentStyle、getComputedStyle区别介绍
- 辛星整理Linux下的/var目录