public void SaveChanges(Entity entity) throws Exception { // do we need to do anything? if (entity.getIsNew()) this.Insert(entity); else if (entity.getIsModified()) this.Update(entity); else if (entity.getIsDeleted()) this.Delete(entity); // nothing to do... }
private SqlStatement GetInsertStatement(Entity entity) throws Exception { StringBuffer builder = new StringBuffer(); SqlStatement sql = new SqlStatement(); // et... EntityType et = getEntityType(); // create... builder.append("INSERT INTO "); builder.append(et.getNativeName()); builder.append(" ("); boolean first = true; for (int index = 0; index < et.getFields().size(); index++) { EntityField field = (EntityField) et.getFields().elementAt(index); if (entity.getIsModified(field)) { if (first) first = false; else builder.append(", "); builder.append(field.getNativeName()); } } builder.append(") VALUES ("); first = true; for (int index = 0; index < et.getFields().size(); index++) { EntityField field = (EntityField) et.getFields().elementAt(index); if (entity.getIsModified(field)) { if (first) first = false; else builder.append(", "); builder.append("?"); // add in the parameter.... sql.AddParameterValue(entity.GetValue(field)); } } builder.append(")"); // return... sql.setCommandText(builder.toString()); return sql; }
private SqlStatement GetUpdateStatement(Entity entity) throws Exception { StringBuffer builder = new StringBuffer(); SqlStatement sql = new SqlStatement(); // et... EntityType et = getEntityType(); // update... builder.append("UPDATE "); builder.append(et.getNativeName()); builder.append(" SET "); // walk... boolean first = true; EntityField key = null; for (int index = 0; index < et.getFields().size(); index++) { EntityField field = (EntityField) et.getFields().elementAt(index); if (field.getIsKey()) key = field; else if (entity.getIsModified(field)) { if (first) first = false; else builder.append(", "); // add the snippet... builder.append(field.getNativeName()); builder.append("=?"); // add the parameter... Object value = entity.GetValue(field); sql.AddParameterValue(value); } } // append... AppendIdConstraint(builder, sql, key, entity); // return... sql.setCommandText(builder.toString()); return sql; }