From 8c54f409f4d8f10cdcf0b0649fe90894d311f382 Mon Sep 17 00:00:00 2001 From: wenshao Date: Mon, 19 Sep 2011 07:03:58 +0000 Subject: [PATCH] =?UTF-8?q?=E9=95=BF=E4=BA=8B=E5=8A=A1=E7=9B=91=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.alibabatech.com/svn/druid/trunk@861 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../alibaba/druid/pool/PoolableConnection.java | 18 ++++++++++++------ .../alibaba/druid/pool/PoolableStatement.java | 6 ++---- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/alibaba/druid/pool/PoolableConnection.java b/src/main/java/com/alibaba/druid/pool/PoolableConnection.java index a47052371b..52045044cd 100644 --- a/src/main/java/com/alibaba/druid/pool/PoolableConnection.java +++ b/src/main/java/com/alibaba/druid/pool/PoolableConnection.java @@ -546,17 +546,23 @@ public class PoolableConnection implements PooledConnection, Connection { checkOpen(); try { - if ((!autoCommit) && conn.getAutoCommit()) { - DruidAbstractDataSource dataSource = holder.getDataSource(); - dataSource.incrementStartTransactionCount(); - transactionInfo = new TransactionInfo(dataSource.createTransactionId()); - } - conn.setAutoCommit(autoCommit); } catch (SQLException ex) { handleException(ex); } } + + protected void transactionRecord(String sql) throws SQLException { + if (transactionInfo == null && (!conn.getAutoCommit())) { + DruidAbstractDataSource dataSource = holder.getDataSource(); + dataSource.incrementStartTransactionCount(); + transactionInfo = new TransactionInfo(dataSource.createTransactionId()); + } + + if (transactionInfo != null) { + transactionInfo.getSqlList().add(sql); + } + } @Override public boolean getAutoCommit() throws SQLException { diff --git a/src/main/java/com/alibaba/druid/pool/PoolableStatement.java b/src/main/java/com/alibaba/druid/pool/PoolableStatement.java index 9f7be3f324..c8a0baef55 100644 --- a/src/main/java/com/alibaba/druid/pool/PoolableStatement.java +++ b/src/main/java/com/alibaba/druid/pool/PoolableStatement.java @@ -98,10 +98,8 @@ public class PoolableStatement extends PoolableWrapper implements Statement { } } - protected void transactionRecord(String sql) { - if (conn.getTransactionInfo() != null) { - conn.getTransactionInfo().getSqlList().add(sql); - } + protected void transactionRecord(String sql) throws SQLException { + conn.transactionRecord(sql); } @Override