public static String genUpdateSQL(SqlModel model) { StringBuffer sber = new StringBuffer(); String result = null; String[] columnNames = model.getColumnNames(); // 获取主键对象模型 ModelField primaryField = model.getModelField(model.getPrimaryFieldName()); // 主键列名称 String primaryColumnName = primaryField.getColumnName(); if (null != model) { sber.append("UPDATE "); sber.append(model.getTableName()); sber.append(" SET "); ModelField field = null; for (String fieldName : columnNames) { if ("id".equalsIgnoreCase(fieldName)) { continue; } if (primaryColumnName.equalsIgnoreCase(fieldName)) { continue; } field = model.getModelField(fieldName); if (null == field) { throw new NullPointerException("得到的字段为空! "); } if (0 == field.getFieldType() && StringUtils.isNotEmpty(field.getFieldValue()) && !"null".equalsIgnoreCase(field.getFieldValue())) { sber.append(field.getColumnName()); sber.append("="); sber.append("'"); sber.append(field.getFieldValue()); sber.append("'"); sber.append(","); } else if (1 == field.getFieldType() && StringUtils.isNotEmpty(field.getFieldValue()) && !"null".equalsIgnoreCase(field.getFieldValue())) { sber.append(field.getColumnName()); sber.append("="); sber.append(field.getFieldValue()); sber.append(","); } else { } } if (null != sber && sber.length() > 0 && sber.toString().endsWith(",")) { sber = sber.delete(sber.length() - 1, sber.length()); } sber.append(" WHERE "); sber.append(primaryColumnName); sber.append("="); if ((null == primaryField || StringUtils.isEmpty(primaryField.getFieldValue())) && (null == model.getPrimaryFieldValue() || "".equals(model.getPrimaryFieldValue()))) { throw new NullPointerException("ID字段值为空!"); } if (0 == primaryField.getFieldType()) { sber.append("'"); sber.append( primaryField.getFieldValue() == null ? model.getPrimaryFieldValue() : primaryField.getFieldValue()); sber.append("'"); } else if (1 == primaryField.getFieldType()) { sber.append( primaryField.getFieldValue() == null ? model.getPrimaryFieldValue() : primaryField.getFieldValue()); } } result = sber.toString(); LOGGER.info("生成的SQL语句为:" + result); return result; }