@Override public String toString() { StatementBuilder buff = new StatementBuilder("{"); for (int i = 0; i < size; i++) { buff.appendExceptFirst(", "); buff.append(data[i]); } return buff.append('}').toString(); }
private void appendKeyCondition(StatementBuilder buff) { buff.append(" WHERE "); buff.resetCount(); for (String k : key) { buff.appendExceptFirst(" AND "); buff.append(StringUtils.quoteIdentifier(k)).append("=?"); } }
/** {@inheritDoc} */ @Override public String getSQL() { StatementBuilder buff = new StatementBuilder(explain() ? "EXPLAIN " : ""); buff.append("DELETE") .append("\nFROM ") .append(from.getSQL()); if (where != null) buff.append("\nWHERE ").append(StringUtils.unEnclose(where.getSQL())); if (limit != null) buff.append("\nLIMIT (").append(StringUtils.unEnclose(limit.getSQL())).append(')'); return buff.toString(); } }
private void buildUpdateSQL() { if (updateAction == ConstraintActionType.RESTRICT) { return; } StatementBuilder buff = new StatementBuilder(); appendUpdate(buff); appendWhere(buff); updateSQL = buff.toString(); }
private void buildDeleteSQL() { if (deleteAction == ConstraintActionType.RESTRICT) { return; } StatementBuilder buff = new StatementBuilder(); if (deleteAction == ConstraintActionType.CASCADE) { buff.append("DELETE FROM ").append(table.getSQL()); } else { appendUpdate(buff); } appendWhere(buff); deleteSQL = buff.toString(); }
/** * Delete the given row in the database. * * @param current the row * @throws SQLException if this row has already been deleted */ public void deleteRow(Value[] current) throws SQLException { StatementBuilder buff = new StatementBuilder("DELETE FROM "); appendTableName(buff); appendKeyCondition(buff); PreparedStatement prep = conn.prepareStatement(buff.toString()); setKey(prep, 1, current); int count = prep.executeUpdate(); if (count != 1) { // the row has already been deleted throw DbException.get(ErrorCode.NO_DATA_AVAILABLE); } }
private void addParameter(StatementBuilder buff, Column col) { if (col.getType() == Value.STRING_FIXED && link.isOracle()) { // workaround for Oracle // create table test(id int primary key, name char(15)); // insert into test values(1, 'Hello') // select * from test where name = ? -- where ? = "Hello" > no rows buff.append("CAST(? AS CHAR(").append(col.getPrecision()).append("))"); } else { buff.append('?'); } }
@Override public String getSQL() { StatementBuilder buff = new StatementBuilder("("); for (Value v : values) { buff.appendExceptFirst(", "); buff.append(v.getSQL()); } if (values.length == 1) { buff.append(','); } return buff.append(')').toString(); }
private void appendWhere(StatementBuilder buff) { buff.append(" WHERE "); buff.resetCount(); for (IndexColumn c : columns) { buff.appendExceptFirst(" AND "); buff.append(Parser.quoteIdentifier(c.column.getName())).append("=?"); } }
/** {@inheritDoc} */ @Override public String getSQL() { StatementBuilder buff = new StatementBuilder(); buff.append(leftTable().getSQL()); buff.append(leftOuter ? " \n LEFT OUTER JOIN " : " \n INNER JOIN "); buff.append(rightTable().getSQL()); buff.append(" \n ON ").append(StringUtils.unEnclose(on().getSQL())); return buff.toString(); } }
/** * @param buff Statement builder. * @param exp Alias expression. */ private static void addAlias(StatementBuilder buff, GridSqlAst exp) { exp = GridSqlAlias.unwrap(exp); buff.append(StringUtils.unEnclose(exp.getSQL())); }
@Override public String getSQL() { StatementBuilder buff = new StatementBuilder("("); for (Expression e: list) { buff.appendExceptFirst(", "); buff.append(e.getSQL()); } if (list.length == 1) { buff.append(','); } return buff.append(')').toString(); }
private void appendUpdate(StatementBuilder buff) { buff.append("UPDATE ").append(table.getSQL()).append(" SET "); buff.resetCount(); for (IndexColumn c : columns) { buff.appendExceptFirst(" , "); buff.append(Parser.quoteIdentifier(c.column.getName())).append("=?"); } }
/** * Re-reads a row from the database and updates the values in the array. * * @param row the values that contain the key * @return the row */ public Value[] readRow(Value[] row) throws SQLException { StatementBuilder buff = new StatementBuilder("SELECT "); appendColumnList(buff, false); buff.append(" FROM "); appendTableName(buff); appendKeyCondition(buff); PreparedStatement prep = conn.prepareStatement(buff.toString()); setKey(prep, 1, row); ResultSet rs = prep.executeQuery(); if (!rs.next()) { throw DbException.get(ErrorCode.NO_DATA_AVAILABLE); } Value[] newRow = new Value[columnCount]; for (int i = 0; i < columnCount; i++) { int type = result.getColumnType(i); newRow[i] = DataType.readValue(conn.getSession(), rs, i + 1, type); } return newRow; }
@Override public String getTraceSQL() { StatementBuilder buff = new StatementBuilder("("); for (Value v : values) { buff.appendExceptFirst(", "); buff.append(v == null ? "null" : v.getTraceSQL()); } return buff.append(')').toString(); }
private void appendColumnList(StatementBuilder buff, boolean set) { buff.resetCount(); for (int i = 0; i < columnCount; i++) { buff.appendExceptFirst(","); String col = result.getColumnName(i); buff.append(StringUtils.quoteIdentifier(col)); if (set) { buff.append("=? "); } } }
@Override public String getString() { StatementBuilder buff = new StatementBuilder("("); for (Value v : values) { buff.appendExceptFirst(", "); buff.append(v.getString()); } return buff.append(')').toString(); }
private void appendKeyCondition(StatementBuilder buff) { buff.append(" WHERE "); buff.resetCount(); for (String k : key) { buff.appendExceptFirst(" AND "); buff.append(StringUtils.quoteIdentifier(k)).append("=?"); } }
/** * Convert an int array to the Java source code that represents this array. * Null will be converted to 'null'. * * @param array the int array * @return the Java source code (including new int[]{}) */ public static String quoteJavaIntArray(int[] array) { if (array == null) { return "null"; } StatementBuilder buff = new StatementBuilder("new int[]{"); for (int a : array) { buff.appendExceptFirst(", "); buff.append(a); } return buff.append('}').toString(); }