/** * Create a new DefaultStatementBuilder which will always create a new PreparedStatement from * the Connection * * @param conn Used to prepare the statement * @param sql Translated SQL statement * @param ctx Unused * * @return a new PreparedStatement */ @Override public PreparedStatement create(Connection conn, String sql, StatementContext ctx) throws SQLException { if (ctx.isReturningGeneratedKeys()) { String[] columnNames = ctx.getGeneratedKeysColumnNames(); if (columnNames != null && columnNames.length > 0) { return conn.prepareStatement(sql, columnNames); } return conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); } else if (ctx.isConcurrentUpdatable()) { return conn.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE); } else { return conn.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); } }
/** * Create a new DefaultStatementBuilder which will always create a new PreparedStatement from * the Connection * * @param conn Used to prepare the statement * @param sql Translated SQL statement * @param ctx Unused * * @return a new PreparedStatement */ @Override public PreparedStatement create(Connection conn, String sql, StatementContext ctx) throws SQLException { if (ctx.isReturningGeneratedKeys()) { String[] columnNames = ctx.getGeneratedKeysColumnNames(); if (columnNames != null && columnNames.length > 0) { return conn.prepareStatement(sql, columnNames); } return conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); } else if (ctx.isConcurrentUpdatable()) { return conn.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE); } else { return conn.prepareStatement(sql); } }