src/main/java/org/vibur/dbcp/proxy/ConnectionInvocationHandler.java
private StatementHolder getCachedStatement(Method method, Object[] args) throws SQLException {
        if (statementCache != null) {
            return statementCache.take(new StatementMethod(getTarget(), this, method, args));
        }

        return getUncachedStatement(method, args, (String) args[0]);
    }
private StatementHolder getCachedStatement(Method method, Object[] args) throws SQLException {
        if (statementCache != null) {
            return statementCache.take(new StatementMethod(getTarget(), this, method, args));
        }

        return getUncachedStatement(method, args, (String) args[0]);
    }
private StatementHolder getCachedStatement ( Method method , Object [ ] args ) throws SQLException { if ( statementCache != null ) { return statementCache . take ( new StatementMethod ( getTarget ( ) , this , method , args ) ) ; } return getUncachedStatement ( method , args , ( String ) args [ 0 ] ) ; }
Returns <i>a possibly</i> cached StatementHolder object for the given proxied Connection object and the
invoked on it "prepare..." Method with the given args.

@param method the invoked method
@param args the invoked method arguments
@return a retrieved from the cache or newly created StatementHolder object wrapping the raw JDBC Statement object
@throws SQLException if the invoked underlying "prepare..." method throws an exception
Returns <i > a possibly< / i > cached StatementHolder object for the given proxied Connection object and the invoked on it prepare ... Method with the given args .