事务回滚的使用
2015-12-10 10:19
387 查看
//采用事务处理转账失败的情况 @Test public void testTransaction1() throws Exception { // 获得链接对象 Connection conn = JdbcUtils.getConnection(); PreparedStatement pstmt = null ; PreparedStatement pstmt1 = null ; //让数据库不要自动提交事务 conn.setAutoCommit(false) ; try{ pstmt = conn.prepareStatement("update bank set money = money -? where id = ?") ; pstmt.setFloat(1, 2000) ; pstmt.setInt(2, 1) ; int n = pstmt.executeUpdate() ; System.out.println(n); System.out.println(10/2); pstmt1 = conn.prepareStatement("update bank set money = money + ? where id = ?") ; pstmt1.setFloat(1, 2000) ; pstmt1.setInt(2, 2) ; int n1 = pstmt1.executeUpdate() ; System.out.println(n1); //手动进行提交,体现一致性 conn.commit() ; }catch(Exception e){ //让事务进行回滚 conn.rollback() ; } // 释放资源 JdbcUtils.release(null, pstmt, conn); JdbcUtils.release(null, pstmt1, conn); }注意!!!
mysql中的表要使用innodb引擎才能使用事务回滚功能!
相关文章推荐
- init 和 initWithCapacity
- 【Java字符串高效率】统计单词统计个数
- jdk和jre有什么区别
- MySQL线程池(THREAD POOL)的原理
- JSON序列化与反序列化对象
- 《HTTP权威指南》– 2.HTTP报文与URL资源
- 《HTTP权威指南》– 3.HTTP方法和状态码
- lucene 查询 (转载)
- oracle创建表空间和用户
- adb 无线调试
- Efficient Counter in Java
- Linux进程的Uninterruptible sleep(D)状态
- 抽象类的实例化
- sql模糊查询
- Android中插件开发篇之----应用换肤原理解析
- Android开发--RecyclerView使用,看AndroidL新特性,android5.0新特性
- myibatis dao接口无需写实现类
- servlet学习笔记01基本概念
- qsetting读取ini文件
- How to console into your devices