public SqlUnit getUpdateSqlUnit(CrudModel cp) { List paramNames = new ArrayList(); List<CrudField> primKeys = new ArrayList(); StringBuffer sb = new StringBuffer(); sb.append("UPDATE " + escapeField(cp.getTableName()) + " SET "); boolean firstPass = true; for (CrudModel.CrudField cf : cp.getFields()) { if (cf.isLinked()) continue; if (cf.isPrimary()) { primKeys.add(cf); continue; } if (firstPass) firstPass = false; else { sb.append(","); } sb.append(escapeField(cf.getFieldName()) + "=?"); paramNames.add(cf.getName()); } if (primKeys.size() == 0) throw new RuntimeException("There must be at least one primary key for CRUD getReadSqlCache"); sb.append(" WHERE "); int i = 0; for (CrudModel.CrudField p : primKeys) { if (i > 0) sb.append(" AND "); sb.append(escapeField(p.getFieldName()) + "=?"); paramNames.add(p.getName()); i++; } String stmt = sb.toString(); return new SqlUnit(stmt, paramNames); }
public SqlUnit getCreateSqlUnit(CrudModel cp) { List paramNames = new ArrayList(); StringBuffer sb = new StringBuffer(); StringBuffer tail = new StringBuffer(); sb.append("INSERT INTO " + escapeField(cp.getTableName()) + " ("); tail.append("("); boolean firstPass = true; // loop the fields. for (CrudModel.CrudField cf : cp.getFields()) { if (cf.isLinked()) continue; if (firstPass) firstPass = false; else { sb.append(","); tail.append(","); } sb.append(escapeField(cf.getFieldName())); tail.append("?"); paramNames.add(cf.getName()); } sb.append(")"); tail.append(")"); String stmt = sb.append(" VALUES ").append(tail).toString(); return new SqlUnit(stmt, paramNames); }
// <editor-fold defaultstate="collapsed" desc="SQL LIST"> public SqlUnit getListSqlUnit(CrudModel cp, String xalias) { String alias = cp.getAlias(); if (alias == null || alias.trim().length() == 0) alias = xalias; alias = alias.replaceAll("/", "_"); List<CrudField> primKeys = new ArrayList(); List paramNames = new ArrayList(); StringBuffer sb = new StringBuffer(); sb.append("SELECT ${columns} FROM ("); sb.append("SELECT "); boolean firstPass = true; for (CrudModel.CrudField cf : cp.getFields()) { if (firstPass) firstPass = false; else { sb.append(","); } if (!cf.isLinked()) sb.append(escapeField(cp.getTableName()) + "."); sb.append(escapeField(cf.getFieldName()) + " AS " + cf.getName()); } sb.append(" FROM " + escapeField(cp.getTableName())); if (cp.getLinkTable() != null) sb.append(escapeField(cp.getLinkTable())); sb.append(" ) " + alias); sb.append(" ${condition}"); String stmt = sb.toString(); return new SqlUnit(stmt, paramNames); }