@Override protected String createSql() { QuotingStrategy strategy = adapter.getQuotingStrategy(); StringBuilder buffer = new StringBuilder("UPDATE "); buffer.append(strategy.quotedFullyQualifiedName(query.getDbEntity())); buffer.append(" SET ").append(strategy.quotedIdentifier(query.getDbEntity(), deletedFieldName)).append(" = ?"); applyQualifier(buffer); return buffer.toString(); }
@Override protected String createSql() { QuotingStrategy strategy = adapter.getQuotingStrategy(); StringBuilder buffer = new StringBuilder("DELETE FROM "); buffer.append(strategy.quotedFullyQualifiedName(query.getDbEntity())); applyQualifier(buffer); return buffer.toString(); }
@Override protected PreparedStatement prepareStatement(Connection connection, String queryStr, DbAdapter adapter, boolean generatedKeys) throws SQLException { if (generatedKeys) { Collection<DbAttribute> generatedAttributes = query.getDbEntity().getGeneratedAttributes(); String[] generatedPKColumns = new String[generatedAttributes.size()]; int i = 0; for (DbAttribute generatedAttribute : generatedAttributes) { if (generatedAttribute.isPrimaryKey()) { generatedPKColumns[i++] = generatedAttribute.getName().toLowerCase(); } } return connection.prepareStatement(queryStr, Arrays.copyOf(generatedPKColumns, i)); } return connection.prepareStatement(queryStr); }
protected void setIdentityInsert(Connection connection, boolean on) throws SQLException { String flag = on ? " ON" : " OFF"; String configSQL = "SET IDENTITY_INSERT " + query.getDbEntity().getFullyQualifiedName() + flag; QueryLogger.logQuery(configSQL, Collections.EMPTY_LIST); Statement statement = connection.createStatement(); try { statement.execute(configSQL); } finally { try { statement.close(); } catch (Exception e) { } } }
protected void setIdentityInsert(Connection connection, boolean on) throws SQLException { String flag = on ? " ON" : " OFF"; String configSQL = "SET IDENTITY_INSERT " + query.getDbEntity().getFullyQualifiedName() + flag; dataNode.getJdbcEventLogger().log(configSQL); try (Statement statement = connection.createStatement()) { statement.execute(configSQL); } }
String createLOBSelectString(List<DbAttribute> selectedLOBAttributes, List<DbAttribute> qualifierAttributes) { QuotingStrategy strategy = adapter.getQuotingStrategy(); StringBuilder buf = new StringBuilder(); buf.append("SELECT "); Iterator<DbAttribute> it = selectedLOBAttributes.iterator(); while (it.hasNext()) { buf.append(strategy.quotedName(it.next())); if (it.hasNext()) { buf.append(", "); } } buf.append(" FROM ").append(strategy.quotedFullyQualifiedName(query.getDbEntity())).append(" WHERE "); it = qualifierAttributes.iterator(); while (it.hasNext()) { DbAttribute attribute = it.next(); appendDbAttribute(buf, attribute); buf.append(" = ?"); if (it.hasNext()) { buf.append(" AND "); } } buf.append(" FOR UPDATE"); return buf.toString(); }
public String createSqlString(BatchQuery batch) { DeleteBatchQuery deleteBatch = (DeleteBatchQuery) batch; String table = batch.getDbEntity().getFullyQualifiedName(); List qualifierAttributes = deleteBatch.getQualifierAttributes(); StringBuffer query = new StringBuffer("DELETE FROM "); query.append(table).append(" WHERE "); Iterator i = qualifierAttributes.iterator(); while (i.hasNext()) { DbAttribute attribute = (DbAttribute) i.next(); appendDbAttribute(query, attribute); query.append(deleteBatch.isNull(attribute) ? " IS NULL" : " = ?"); if (i.hasNext()) { query.append(" AND "); } } return query.toString(); }
public String createSqlString(BatchQuery batch) { String table = batch.getDbEntity().getFullyQualifiedName(); List dbAttributes = batch.getDbAttributes(); StringBuffer query = new StringBuffer("INSERT INTO "); query.append(table).append(" ("); for (Iterator i = dbAttributes.iterator(); i.hasNext();) { DbAttribute attribute = (DbAttribute) i.next(); query.append(attribute.getName()); if (i.hasNext()) { query.append(", "); } } query.append(") VALUES ("); for (int i = 0; i < dbAttributes.size(); i++) { if (i > 0) { query.append(", "); } appendUpdatedParameter( query, (DbAttribute) dbAttributes.get(i), batch.getValue(i)); } query.append(')'); return query.toString(); } }
public String createLOBSelectString( BatchQuery updateQuery, List selectedLOBAttributes, List qualifierAttributes) { StringBuffer buf = new StringBuffer(); buf.append("SELECT "); Iterator it = selectedLOBAttributes.iterator(); while (it.hasNext()) { buf.append(((DbAttribute) it.next()).getName()); if (it.hasNext()) { buf.append(", "); } } buf .append(" FROM ") .append(updateQuery.getDbEntity().getFullyQualifiedName()) .append(" WHERE "); it = qualifierAttributes.iterator(); while (it.hasNext()) { DbAttribute attribute = (DbAttribute) it.next(); appendDbAttribute(buf, attribute); buf.append(" = ?"); if (it.hasNext()) { buf.append(" AND "); } } buf.append(" FOR UPDATE"); return buf.toString(); }
@Override public String createSql(BatchQueryRow row) { List<DbAttribute> dbAttributes = query.getDbAttributes(); QuotingStrategy strategy = adapter.getQuotingStrategy(); StringBuilder buffer = new StringBuilder("INSERT INTO "); buffer.append(strategy.quotedFullyQualifiedName(query.getDbEntity())); buffer.append(" ("); for (Iterator<DbAttribute> i = dbAttributes.iterator(); i.hasNext();) { DbAttribute attribute = i.next(); buffer.append(strategy.quotedName(attribute)); if (i.hasNext()) { buffer.append(", "); } } buffer.append(") VALUES ("); for (int i = 0; i < dbAttributes.size(); i++) { if (i > 0) { buffer.append(", "); } appendUpdatedParameter(buffer, dbAttributes.get(i), row.getValue(i)); } buffer.append(')'); return buffer.toString(); } }
public String createSqlString(BatchQuery batch) { String table = batch.getDbEntity().getFullyQualifiedName(); List dbAttributes = batch.getDbAttributes();
public String createSqlString(BatchQuery batch) { UpdateBatchQuery updateBatch = (UpdateBatchQuery) batch; String table = batch.getDbEntity().getFullyQualifiedName(); List qualifierAttributes = updateBatch.getQualifierAttributes(); List updatedDbAttributes = updateBatch.getUpdatedAttributes(); StringBuffer query = new StringBuffer("UPDATE "); query.append(table).append(" SET "); int len = updatedDbAttributes.size(); for (int i = 0; i < len; i++) { if (i > 0) { query.append(", "); } DbAttribute attribute = (DbAttribute) updatedDbAttributes.get(i); query.append(attribute.getName()).append(" = ?"); } query.append(" WHERE "); Iterator i = qualifierAttributes.iterator(); while (i.hasNext()) { DbAttribute attribute = (DbAttribute) i.next(); appendDbAttribute(query, attribute); query.append(updateBatch.isNull(attribute) ? " IS NULL" : " = ?"); if (i.hasNext()) { query.append(" AND "); } } return query.toString(); }
/** * Returns whether a table has identity columns. */ protected boolean expectsToOverrideIdentityColumns() { // jTDS driver supports identity columns, no need for tricks... if (getAdapter().supportsGeneratedKeys()) { return false; } if (!(query instanceof InsertBatchQuery) || query.getDbEntity() == null) { return false; } // find identity attributes Iterator it = query.getDbEntity().getAttributes().iterator(); while (it.hasNext()) { DbAttribute attribute = (DbAttribute) it.next(); if (attribute.isGenerated()) { return true; } } return false; } }
/** * Returns whether BatchQuery generates any keys. */ protected boolean hasGeneratedKeys() { // see if we are configured to support generated keys if (!adapter.supportsGeneratedKeys()) { return false; } // see if the query needs them if (query instanceof InsertBatchQuery) { // see if any of the generated attributes is PK Iterator attributes = query.getDbEntity().getGeneratedAttributes().iterator(); while (attributes.hasNext()) { if (((DbAttribute) attributes.next()).isPrimaryKey()) { return true; } } } return false; }
buffer.append(strategy.quotedFullyQualifiedName(query.getDbEntity())); buffer.append(" SET ");
/** * Returns whether a table has identity columns. */ protected boolean expectsToOverrideIdentityColumns() { // jTDS driver supports identity columns, no need for tricks... if (dataNode.getAdapter().supportsGeneratedKeys()) { return false; } if (!(query instanceof InsertBatchQuery) || query.getDbEntity() == null) { return false; } // find identity attributes for (DbAttribute attribute : query.getDbEntity().getAttributes()) { if (attribute.isGenerated()) { return true; } } return false; } }
if (query.getDbEntity() != lastEntity) { lastEntity = query.getDbEntity();
if (query.getDbEntity() != lastEntity) { lastEntity = query.getDbEntity();
/** * Returns whether BatchQuery generates any keys. */ protected boolean hasGeneratedKeys() { // see if we are configured to support generated keys if (!dataNode.getAdapter().supportsGeneratedKeys()) { return false; } // see if the query needs them if (query instanceof InsertBatchQuery) { // see if any of the generated attributes is PK for (final DbAttribute attr : query.getDbEntity().getGeneratedAttributes()) { if (attr.isPrimaryKey()) { return true; } } } return false; }
@Override protected DbAttributeBinding[] createBindings() { DbAttributeBinding[] superBindings = super.createBindings(); int slen = superBindings.length; DbAttributeBinding[] bindings = new DbAttributeBinding[slen + 1]; DbAttribute deleteAttribute = query.getDbEntity().getAttribute(deletedFieldName); String typeName = TypesMapping.getJavaBySqlType(deleteAttribute.getType()); ExtendedType extendedType = adapter.getExtendedTypes().getRegisteredType(typeName); bindings[0] = new DbAttributeBinding(deleteAttribute); bindings[0].include(1, true, extendedType); System.arraycopy(superBindings, 0, bindings, 1, slen); return bindings; }