一个事物多个数据库操作关闭的问题,怎样才能不影响连接数混乱

问题描述

conn = JDBCUtil.generateConn(); conn.setAutoCommit(false); logger.info("commit false"); RosDao.deleteZLIFNRRGT(jbxxbean.getNAME1(), conn); RosDao.deleteZBP_PROD_CAT(jbxxbean.getNAME1(), conn); RosDao.deleteZBP_PUR_CAT(jbxxbean.getNAME1(), conn);一个事物涉及多个数据库操作,在每个被调的方法里都要关闭 conn 么,还是在主方法一起关

解决方案

这三个方法用的是同一个conn,关闭了就没有事务的概念了,try{ conn = JDBCUtil.generateConn(); conn.setAutoCommit(false); logger.info("commit false"); RosDao.deleteZLIFNRRGT(jbxxbean.getNAME1(), conn); RosDao.deleteZBP_PROD_CAT(jbxxbean.getNAME1(), conn); RosDao.deleteZBP_PUR_CAT(jbxxbean.getNAME1(), conn); }catch(Exception e){ conn.rollback();}finally{ //此处conn并未真正关闭,交给数据库连接池维护 //下面两句谁在前谁在后并不影响 JDBCUtil.close(conn); conn.setAutoCommit(true); }
解决方案二:
处理原则是哪边开启连接的,就在那个方法里面关闭连接,如果放到调用方法里面处理连接的关闭将会把事情搞得很复杂,不好处理。
解决方案三:
只需要在这里统一关闭就行了。finally{ JDBCUtil.close(conn); }

时间: 2024-10-03 06:43:09

一个事物多个数据库操作关闭的问题,怎样才能不影响连接数混乱的相关文章

一个简单的asp数据库操作类

数据|数据库 <%'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'数据库操作类'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'名称:Class_DBOperate'版本:0.2'作者:qihangnet'更新:2005年6月14日'作用:简化数据库操作的流程'授权:免费使用'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Class Class_DBOperate '************************

一个基于PDO的数据库操作类(新) 一个PDO事务实例

复制代码 代码如下: <?php /* * 作者:胡睿 * 日期:2011/03/19 * 电邮:hooray0905@foxmail.com * * 20110319 * 常用数据库操作,如:增删改查,获取单条记录.多条记录,返回最新一条插入记录id,返回操作记录行数等 * 20110630 * 整体修改方法,合并部分参数 * 规范代码,一个方法里只有1个return语句 */ /* 参数说明 int $debug 是否开启调试,开启则输出sql语句 int $mode 0 返回数组 1 返回

一个基于PDO的数据库操作类(新) 一个PDO事务实例_php技巧

复制代码 代码如下: <?php /* * 作者:胡睿 * 日期:2011/03/19 * 电邮:hooray0905@foxmail.com * * 20110319 * 常用数据库操作,如:增删改查,获取单条记录.多条记录,返回最新一条插入记录id,返回操作记录行数等 * 20110630 * 整体修改方法,合并部分参数 * 规范代码,一个方法里只有1个return语句 */ /* 参数说明 int $debug 是否开启调试,开启则输出sql语句 int $mode 0 返回数组 1 返回

一个简单的asp数据库操作类_ASP CLASS类

<% '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% '数据库操作类 '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% '名称:Class_DBOperate '版本:0.2 '作者:qihangnet '更新:2005年6月14日 '作用:简化数据库操作的流程 '授权:免费使用 '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Class Class_DBOperate '*********************

一个基于PDO的数据库操作类

百度之后决定使用PDO,至于为什么选择PDO,这里就不再多说,大家自己去百度下就能明白. 既然要换,那最基本就需要有个常用的数据库操作类,也就是所谓的增删改查等,昨晚捣腾了一晚,大致弄出了个雏形,以下就是代码,希望大家能给出点意见. 复制代码 代码如下: <?php /* 作者:胡睿 日期:2011/03/19 电邮:hooray0905@foxmail.com 20110319 常用数据库操作,如:增删改查,获取单条记录.多条记录,返回最新一条插入记录id,返回操作记录行数等 */ /* 参数

一个基于PDO的数据库操作类_php技巧

百度之后决定使用PDO,至于为什么选择PDO,这里就不再多说,大家自己去百度下就能明白. 既然要换,那最基本就需要有个常用的数据库操作类,也就是所谓的增删改查等,昨晚捣腾了一晚,大致弄出了个雏形,以下就是代码,希望大家能给出点意见. 复制代码 代码如下: <?php /* 作者:胡睿 日期:2011/03/19 电邮:hooray0905@foxmail.com 20110319 常用数据库操作,如:增删改查,获取单条记录.多条记录,返回最新一条插入记录id,返回操作记录行数等 */ /* 参数

新手学PHP之数据库操作详解及乱码解决!_php基础

很多朋友新学PHP也许在数据库方面会有点麻烦,尤其是MYSQL4.1.x以后会出现乱码问题.这里写个简单教程,希望对新手有点帮助.也许很多朋友之前是学ASP的(本人也是),有可能怀念ASP的set rs=adodb.recorset(我靠,太久没做ASP,后面的好像有点错,想不起来了!凑活着看吧!)然后就rs.open,rs.movenext...........可是PHPA是依靠很多数据库操作函数来控制,比如:mysql_connect();mysql_select_db();........

PHP实现的一个简单的数据库操作类

PHP实现的一个简单的数据库操作类 实现的功能: - 在实例化的时候能设置连接字符集 - 在实例化的时候能连接数据库 - 在实例化的时候能选择默认数据库 - 销毁对象时关闭数据库 代码如下: <?php // 数据库操作类MySQLDB class MySQLDB { // 声明属性 private $server; private $username; private $password; public $default_db; public $link; // 声明构造函数 public f

封装一个PDO数据库操作类代码_php技巧

复制代码 代码如下: <?php /** * 数据库PDO操作 */ class MysqlPdo { public static $PDOStatement = null; /** * 数据库的连接参数配置 * @var array * @access public */ public static $config = array(); /** * 是否使用永久连接 * @var bool * @access public */ public static $pconnect = false;