mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
修正close的bug
git-svn-id: http://code.alibabatech.com/svn/druid/trunk@476 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
@@ -303,7 +303,7 @@ public class PoolableConnection implements PooledConnection, Connection {
|
||||
return poolableStatement;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
PreparedStatement stmt = conn.prepareStatement(sql, autoGeneratedKeys);
|
||||
|
||||
holder.getDataSource().initStatement(stmt);
|
||||
@@ -321,72 +321,82 @@ public class PoolableConnection implements PooledConnection, Connection {
|
||||
public CallableStatement prepareCall(String sql) throws SQLException {
|
||||
checkOpen();
|
||||
|
||||
if (holder.isPoolPreparedStatements()) {
|
||||
PreparedStatementKey key = new PreparedStatementKey(sql, getCatalog(), MethodType.Precall_1);
|
||||
PreparedStatementKey key = new PreparedStatementKey(sql, getCatalog(), MethodType.Precall_1);
|
||||
|
||||
if (holder.isPoolPreparedStatements()) {
|
||||
PoolableCallableStatement poolableStatement = (PoolableCallableStatement) holder.getStatementPool().get(key);
|
||||
|
||||
if (poolableStatement != null) {
|
||||
poolableStatement.setPoolableConnection(this);
|
||||
poolableStatement.setClosed(false);
|
||||
holder.addTrace(poolableStatement);
|
||||
return poolableStatement;
|
||||
}
|
||||
|
||||
CallableStatement stmt = conn.prepareCall(sql);
|
||||
|
||||
holder.getDataSource().initStatement(stmt);
|
||||
|
||||
return new PoolableCallableStatement(this, stmt, key);
|
||||
}
|
||||
|
||||
return conn.prepareCall(sql);
|
||||
CallableStatement stmt = conn.prepareCall(sql);
|
||||
|
||||
holder.getDataSource().initStatement(stmt);
|
||||
|
||||
CallableStatement rtnVal = new PoolableCallableStatement(this, stmt, key);
|
||||
|
||||
holder.addTrace(rtnVal);
|
||||
|
||||
return rtnVal;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
|
||||
checkOpen();
|
||||
|
||||
PreparedStatementKey key = new PreparedStatementKey(sql, getCatalog(), MethodType.Precall_2);
|
||||
if (holder.isPoolPreparedStatements()) {
|
||||
PreparedStatementKey key = new PreparedStatementKey(sql, getCatalog(), MethodType.Precall_2);
|
||||
|
||||
PoolableCallableStatement poolableStatement = (PoolableCallableStatement) holder.getStatementPool().get(key);
|
||||
|
||||
if (poolableStatement != null) {
|
||||
poolableStatement.setPoolableConnection(this);
|
||||
poolableStatement.setClosed(false);
|
||||
holder.addTrace(poolableStatement);
|
||||
return poolableStatement;
|
||||
}
|
||||
|
||||
CallableStatement stmt = conn.prepareCall(sql, resultSetType, resultSetConcurrency, resultSetHoldability);
|
||||
|
||||
holder.getDataSource().initStatement(stmt);
|
||||
|
||||
return new PoolableCallableStatement(this, stmt, key);
|
||||
}
|
||||
|
||||
return conn.prepareCall(sql, resultSetType, resultSetConcurrency, resultSetHoldability);
|
||||
CallableStatement stmt = conn.prepareCall(sql, resultSetType, resultSetConcurrency, resultSetHoldability);
|
||||
|
||||
holder.getDataSource().initStatement(stmt);
|
||||
|
||||
CallableStatement rtnVal = new PoolableCallableStatement(this, stmt, key);
|
||||
|
||||
holder.addTrace(rtnVal);
|
||||
|
||||
return rtnVal;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException {
|
||||
checkOpen();
|
||||
|
||||
PreparedStatementKey key = new PreparedStatementKey(sql, getCatalog(), MethodType.Precall_3);
|
||||
if (holder.isPoolPreparedStatements()) {
|
||||
PreparedStatementKey key = new PreparedStatementKey(sql, getCatalog(), MethodType.Precall_3);
|
||||
|
||||
PoolableCallableStatement poolableStatement = (PoolableCallableStatement) holder.getStatementPool().get(key);
|
||||
|
||||
if (poolableStatement != null) {
|
||||
poolableStatement.setPoolableConnection(this);
|
||||
poolableStatement.setClosed(false);
|
||||
holder.addTrace(poolableStatement);
|
||||
return poolableStatement;
|
||||
}
|
||||
|
||||
CallableStatement stmt = conn.prepareCall(sql, resultSetType, resultSetConcurrency);
|
||||
|
||||
holder.getDataSource().initStatement(stmt);
|
||||
|
||||
return new PoolableCallableStatement(this, stmt, key);
|
||||
}
|
||||
|
||||
return conn.prepareCall(sql, resultSetType, resultSetConcurrency);
|
||||
CallableStatement stmt = conn.prepareCall(sql, resultSetType, resultSetConcurrency);
|
||||
|
||||
holder.getDataSource().initStatement(stmt);
|
||||
|
||||
CallableStatement rtnVal = new PoolableCallableStatement(this, stmt, key);
|
||||
holder.addTrace(rtnVal);
|
||||
|
||||
return rtnVal;
|
||||
}
|
||||
|
||||
// ////////////////////
|
||||
|
||||
Reference in New Issue
Block a user