public ResultSet executeQuery(String sql)
	throws SQLException {
		ResultSet result = null;
		checkClosed();
		try{
			if (this.logStatementsEnabled && logger.isDebugEnabled()){
				logger.debug(PoolUtil.fillLogParams(sql, this.logParams));
			}
			long queryStartTime = queryTimerStart();
			if (this.connectionHook != null){
				this.connectionHook.onBeforeStatementExecute(this.connectionHandle, this, sql, this.logParams);
			}
			result = this.internalStatement.executeQuery(sql);
			if (this.connectionHook != null){
				this.connectionHook.onAfterStatementExecute(this.connectionHandle, this, sql, this.logParams);
			}

			queryTimerEnd(sql, queryStartTime);
		} catch (SQLException e) {
			throw this.connectionHandle.markPossiblyBroken(e);

		}
		return result;

	}
public ResultSet executeQuery ( String sql ) throws SQLException { ResultSet result = null ; checkClosed ( ) ; try { if ( this . logStatementsEnabled && logger . isDebugEnabled ( ) ) { logger . debug ( PoolUtil . fillLogParams ( sql , this . logParams ) ) ; } long queryStartTime = queryTimerStart ( ) ; if ( this . connectionHook != null ) { this . connectionHook . onBeforeStatementExecute ( this . connectionHandle , this , sql , this . logParams ) ; } result = this . internalStatement . executeQuery ( sql ) ; if ( this . connectionHook != null ) { this . connectionHook . onAfterStatementExecute ( this . connectionHandle , this , sql , this . logParams ) ; } queryTimerEnd ( sql , queryStartTime ) ; } catch ( SQLException e ) { throw this . connectionHandle . markPossiblyBroken ( e ) ; } return result ; }
@Override