JAVA学习笔记(五十四)- 事务Transaction与批处理
来源:互联网 发布:远程摄像头监控软件 编辑:程序博客网 时间:2024/06/10 03:32
事务Transaction
/* * 事务Transaction * JDBC默认开启自动提交事务,需要关闭,才能手动控制事务 * * 默认MySQL存储引擎为My...,其不支持事务处理,修改为InnoDB引擎 * create table 表名( ) engine=InnoDB default charset=utf8; * * InnoDB引擎默认关闭自动事务提交,修改MySQL为自动提交事务 * set autocommit=1; //1表示自动提交,0表示关闭自动提交 * show variables like 'autocommit'; */public class Test01 { public static void main(String[] args) { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; conn = DBUtil.getConnection(); try { conn.setAutoCommit(false);//关闭自动提交事务,手动控制事务 String sql = "insert into user values (null,'eee','123')"; pstmt = conn.prepareStatement(sql); pstmt.executeUpdate(); //插入第一个用户 String sql2="insert into user values ('fff','123')"; pstmt=conn.prepareStatement(sql2); pstmt.executeUpdate();//插入第二个用户 conn.commit();//提交事务 System.out.println("插入用户成功!"); } catch (SQLException e) { System.out.println("出现异常,回滚事务"); try { conn.rollback();//回滚事务 } catch (SQLException e1) { e1.printStackTrace(); } } finally { DBUtil.closeAll(rs, pstmt, conn); } }}
批处理
/* * 批处理 */public class Test02 { Connection conn = null; Statement stmt = null; PreparedStatement pstmt=null; ResultSet rs = null; public void test01() { try { conn = DBUtil.getConnection(); stmt = conn.createStatement(); // 添加批处理语句 stmt.addBatch("insert into user values (null,'s001','123')"); stmt.addBatch("insert into user values (null,'s002','123')"); stmt.addBatch("insert into user values (null,'s003','123')"); // 执行批处理 int[] nums = stmt.executeBatch(); System.out.println(Arrays.toString(nums)); } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.closeAll(rs, stmt, conn); } } public void test02() { try { conn = DBUtil.getConnection(); conn.setAutoCommit(false); pstmt=conn.prepareStatement("insert into user values (null,?,?)"); // 添加批处理语句 pstmt.setObject(1, "t001"); pstmt.setObject(2, "123"); pstmt.addBatch(); pstmt.setObject(1, "t002"); pstmt.setObject(2, "123"); pstmt.addBatch(); pstmt.setObject(1, "t003"); pstmt.setObject(2, "123"); pstmt.addBatch(); // 执行批处理 int[] nums=pstmt.executeBatch(); System.out.println(Arrays.toString(nums)); conn.commit(); } catch (SQLException e) { try { conn.rollback(); } catch (SQLException e1) { e1.printStackTrace(); } e.printStackTrace(); } finally { DBUtil.closeAll(rs, stmt, conn); } } public static void main(String[] args) { Test02 test = new Test02(); test.test02(); }}
0 0
- JAVA学习笔记(五十四)- 事务Transaction与批处理
- MySQL Transaction(事务)学习笔记
- JAVA互联网架构学习之批处理与编程性事务
- 【Oracle学习】之 事务(Transaction)与锁
- JTA(JAVA Transaction Api)事务
- java事务学习笔记总结
- Ant与批处理(win环境)学习笔记
- post===non posted transaction事务类型学习--PCIE学习笔记
- post===non posted transaction事务类型学习--PCIE学习笔记
- JAVA项目实战学习笔记之批处理
- SQL批处理与事务控制
- JDBC事务、JTA(Java Transaction API)事务、容器事务
- java事务大总结(三) 理解学习 JTA(Java Transaction API)
- Redis命令学习-Transaction(事务)
- redis 学习手册之事务 transaction 操作
- 【Spring应用级学习】事务(transaction)
- [WCF Transaction] 4. 事务与会话
- Transaction 事务
- BestCoder Round #36(Gunner-hash)
- Redis源码中看伪随机数生成算法
- 内存泄露之退出函数路径
- 大数的运算思想
- ZOJ 3321Circle
- JAVA学习笔记(五十四)- 事务Transaction与批处理
- 黑马程序员Java基础第五章-----类的继承 多态 接口
- 说说我面试过的那些公司
- BestCoder Round #36(Trees-离线处理询问)
- .NET中的值类型和引用类型
- HTML5菜鸟入门指导:简介、平台搭建、示例演示
- Eclipse中一直building workspace...的问题
- 面向对象编程的实践感想
- 别踩白块(u3d)