Esempio n. 1
0
  @Override
  public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency)
      throws SQLException {
    checkState();

    PreparedStatementHolder stmtHolder = null;
    PreparedStatementKey key =
        new PreparedStatementKey(
            sql, getCatalog(), MethodType.Precall_3, resultSetType, resultSetConcurrency);

    boolean poolPreparedStatements = holder.isPoolPreparedStatements();

    if (poolPreparedStatements) {
      stmtHolder = holder.getStatementPool().get(key);
    }

    if (stmtHolder == null) {
      try {
        stmtHolder =
            new PreparedStatementHolder(
                key, conn.prepareCall(sql, resultSetType, resultSetConcurrency));
        holder.getDataSource().incrementPreparedStatementCount();
      } catch (SQLException ex) {
        handleException(ex);
      }
    }

    initStatement(stmtHolder);

    DruidPooledCallableStatement rtnVal = new DruidPooledCallableStatement(this, stmtHolder);
    holder.addTrace(rtnVal);

    return rtnVal;
  }
Esempio n. 2
0
  @Override
  public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException {
    checkState();

    PreparedStatementKey key =
        new PreparedStatementKey(sql, getCatalog(), MethodType.M6, autoGeneratedKeys);
    PreparedStatementHolder stmtHolder = null;

    boolean poolPreparedStatements = holder.isPoolPreparedStatements();

    if (poolPreparedStatements) {
      stmtHolder = holder.getStatementPool().get(key);
    }

    if (stmtHolder == null) {
      try {
        stmtHolder =
            new PreparedStatementHolder(key, conn.prepareStatement(sql, autoGeneratedKeys));
        holder.getDataSource().incrementPreparedStatementCount();
      } catch (SQLException ex) {
        handleException(ex);
      }
    }

    initStatement(stmtHolder);

    DruidPooledPreparedStatement rtnVal = new DruidPooledPreparedStatement(this, stmtHolder);

    holder.addTrace(rtnVal);

    return rtnVal;
  }