博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dbutils + mysql事务
阅读量:5749 次
发布时间:2019-06-18

本文共 1712 字,大约阅读时间需要 5 分钟。

  hot3.png

public static void main(String[] args) throws SQLException {	        boolean originalAutoCommitSetting = false;	        Connection connection = null;	        try {	            connection = DbPoolConnection.getDataSource().getConnection();	            /**	             * 在创建QueryRunner对象时,不传递数据源给它,是为了保证这两条SQL在同一个事务中进行,	            * 我们手动获取数据库连接,然后让这两条SQL使用同一个数据库连接执行	             */	            QueryRunner runner = new QueryRunner();	            originalAutoCommitSetting = connection.getAutoCommit();	            System.out.println("originalAutoCommitSetting:" + originalAutoCommitSetting);	            //开启事务	            connection.setAutoCommit(false);	            System.out.println("originalAutoCommitSetting2:" + connection.getAutoCommit());	            String sql1 = "insert into ssq(qishu) values(?)";	             String sql2 = "insert into ssq(qishu) values(?)";	             Object[] paramArr1 = {123};	             Object[] paramArr2 = {456};	             runner.update(connection,sql1,paramArr1);	               //模拟程序出现异常让事务回滚	               int x = 1/0;	             runner.update(connection,sql2,paramArr2);	            connection.commit();	        }catch (Exception e) {	                    if(null != connection){	        	                //出现异常之后就回滚事务	                    	connection.rollback();	        	            }	                    e.printStackTrace();	        	        }finally{	        	            //关闭数据库连接	        	        	 if(null != connection){	        	        	connection.setAutoCommit(originalAutoCommitSetting);		                    connection.close();	        	        	 }	        	        } 	    }

注意,mysql必须是InnoDB引擎,否则事务无效!

转载于:https://my.oschina.net/yunte/blog/609273

你可能感兴趣的文章
PreparedStatement与Statement
查看>>
[Android Pro] DES加密 version1
查看>>
RDD.scala(源码)
查看>>
ASP.NET Razor - C# 变量
查看>>
[Step By Step]SAP HANA PAL多项式回归预测分析Polynomial Regression编程实例FORECASTWITHPOLYNOMIALR(预测)...
查看>>
JavaScript 函数replace揭秘
查看>>
Fedora9常用网络调试
查看>>
使用cgroups来控制内存使用
查看>>
kali Linux下wifi密码安全测试(1)虚拟机下usb无线网卡的挂载
查看>>
Unable to Open User Login File
查看>>
Qt 静态编译后的exe太大, 可以这样压缩.
查看>>
TortoiseGit学习系列之Windows上本地代码如何通过TortoiserGit提交到GitHub详解(图文)...
查看>>
爆笑:IT人士群聚喝酒的讲究
查看>>
Python案例之QQ空间自动登录程序实现
查看>>
Java IO:同步、非堵塞式IO(NIO)
查看>>
[JMX一步步来] 4、动态MBean:DynamicMBean
查看>>
WF4.0实战(十九):Silverlight+WCF+WF+Linq结合的一个示例
查看>>
5.3. Spring Data JPA
查看>>
【设计模式】—— 桥接模式Bridge
查看>>
MongoDB学习笔记~批量插入方法的实现
查看>>