Program: 44503
Project: 44503
Buggy source:
/** 
 * 创建SQL脚本.
 * @param tableInfo 表格属性
 * @param clsName   类型
 * @return sql语句
 */
private static Sql createSql(TableInfo tableInfo,String clsName){
  Sql sql=new Sql();
  StringBuilder insert=new StringBuilder();
  StringBuilder update=new StringBuilder();
  StringBuilder delete=new StringBuilder();
  StringBuilder selectOne=new StringBuilder();
  StringBuilder selectAll=new StringBuilder();
  StringBuilder mapper=new StringBuilder();
  String tableName=tableInfo.getTableName().toUpperCase();
  String dataTime=DatetimeUtil.dateTime();
  mapper.append("String_Node_Str");
  mapper.append("String_Node_Str").append(tableInfo.getTableComment()).append("String_Node_Str");
  mapper.append("String_Node_Str");
  mapper.append("String_Node_Str");
  mapper.append("String_Node_Str").append(ResourceUtils.getProject().getUser()).append("String_Node_Str");
  mapper.append("String_Node_Str").append(dataTime).append("String_Node_Str");
  mapper.append("String_Node_Str");
  mapper.append("String_Node_Str");
  mapper.append("String_Node_Str").append(clsName).append("String_Node_Str");
  String inserId=StringUtil.sqlName("String_Node_Str",clsName);
  insert.append("String_Node_Str").append(inserId).append("String_Node_Str").append(clsName).append("String_Node_Str");
  insert.append("String_Node_Str").append(tableName);
  insert.append("String_Node_Str");
  mapper.append("String_Node_Str");
  mapper.append("String_Node_Str").append(tableName).append("String_Node_Str");
  mapper.append("String_Node_Str").append(clsName.toLowerCase()).append("String_Node_Str").append(tableName).append("String_Node_Str");
  mapper.append("String_Node_Str");
  mapper.append("String_Node_Str");
  mapper.append("String_Node_Str").append(inserId).append("String_Node_Str").append(clsName).append("String_Node_Str").append(clsName.toLowerCase()).append("String_Node_Str");
  String delteId=StringUtil.sqlName("String_Node_Str",clsName);
  delete.append("String_Node_Str").append(delteId).append("String_Node_Str");
  String selectOneId=StringUtil.sqlName("String_Node_Str",clsName);
  String selectOwnId=StringUtil.sqlName("String_Node_Str",clsName);
  selectOne.append("String_Node_Str").append(selectOneId).append("String_Node_Str");
  selectAll.append("String_Node_Str").append(selectOwnId).append("String_Node_Str").append(clsName).append("String_Node_Str");
  mapper.append("String_Node_Str");
  mapper.append("String_Node_Str").append(tableName).append("String_Node_Str");
  mapper.append("String_Node_Str").append(tableName).append("String_Node_Str");
  mapper.append("String_Node_Str");
  mapper.append("String_Node_Str").append(clsName).append("String_Node_Str").append(selectOwnId).append("String_Node_Str");
  String updateId=StringUtil.sqlName("String_Node_Str",clsName);
  update.append("String_Node_Str").append(updateId).append("String_Node_Str").append(clsName).append("String_Node_Str");
  update.append("String_Node_Str").append(tableName).append("String_Node_Str");
  String clsPro;
  StringBuilder proBuilder=new StringBuilder();
  StringBuilder selectSql=new StringBuilder();
  selectSql.append("String_Node_Str");
  String wherePRI="String_Node_Str", columnName;
  boolean pri=false;
  for (  ColumnInfo columnInfo : tableInfo.getColumnList()) {
    clsPro=StringUtil.columnToPropertis(columnInfo.getColumnName());
    columnName=columnInfo.getColumnName().toUpperCase();
    if (columnInfo.getColumnKey().equals("String_Node_Str")) {
      pri=true;
      delete.append(columnInfo.getDataType()).append("String_Node_Str");
      delete.append("String_Node_Str").append(tableName).append("String_Node_Str").append(columnName).append("String_Node_Str").append(clsPro).append("String_Node_Str");
      delete.append("String_Node_Str");
      selectOne.append("String_Node_Str").append(columnInfo.getDataType()).append("String_Node_Str");
      wherePRI="String_Node_Str" + columnName + "String_Node_Str"+ clsPro+ "String_Node_Str";
      mapper.append("String_Node_Str");
      mapper.append("String_Node_Str").append(tableName).append("String_Node_Str");
      mapper.append("String_Node_Str").append(columnInfo.getColumnName().toLowerCase()).append("String_Node_Str").append(columnInfo.getColumnName()).append("String_Node_Str");
      mapper.append("String_Node_Str").append(columnInfo.getColumnName().toLowerCase()).append("String_Node_Str").append("String_Node_Str");
      mapper.append("String_Node_Str");
      mapper.append("String_Node_Str").append(clsName).append("String_Node_Str").append(selectOneId).append("String_Node_Str").append(columnInfo.getDataType()).append("String_Node_Str").append(columnInfo.getColumnName().toLowerCase()).append("String_Node_Str");
      mapper.append("String_Node_Str");
      mapper.append("String_Node_Str").append(tableName).append("String_Node_Str");
      mapper.append("String_Node_Str").append(columnInfo.getColumnName().toLowerCase()).append("String_Node_Str").append(columnInfo.getColumnName()).append("String_Node_Str");
      mapper.append("String_Node_Str");
      mapper.append("String_Node_Str");
      mapper.append("String_Node_Str").append(delteId).append("String_Node_Str").append(columnInfo.getDataType()).append("String_Node_Str").append(columnInfo.getColumnName().toLowerCase()).append("String_Node_Str");
      mapper.append("String_Node_Str");
      mapper.append("String_Node_Str").append(tableName).append("String_Node_Str");
      mapper.append("String_Node_Str").append(clsName.toLowerCase()).append("String_Node_Str").append(tableName).append("String_Node_Str");
      mapper.append("String_Node_Str");
      mapper.append("String_Node_Str");
      mapper.append("String_Node_Str").append(updateId).append("String_Node_Str").append(clsName).append("String_Node_Str").append(clsName.toLowerCase()).append("String_Node_Str");
    }
 else {
      proBuilder.append("String_Node_Str").append(clsPro).append("String_Node_Str");
      insert.append("String_Node_Str").append(columnName).append("String_Node_Str");
      selectSql.append("String_Node_Str").append(columnName).append("String_Node_Str");
      update.append("String_Node_Str").append(columnName).append("String_Node_Str").append(clsPro).append("String_Node_Str");
    }
  }
  insert.setCharAt(insert.lastIndexOf("String_Node_Str"),' ');
  proBuilder.setCharAt(proBuilder.lastIndexOf("String_Node_Str"),' ');
  selectSql.setCharAt(selectSql.lastIndexOf("String_Node_Str"),' ');
  selectSql.append("String_Node_Str").append(tableName).append("String_Node_Str");
  selectAll.append(selectSql).append("String_Node_Str").append("String_Node_Str");
  if (!pri) {
    selectOne=new StringBuilder("String_Node_Str");
    update=new StringBuilder("String_Node_Str");
    delete=new StringBuilder("String_Node_Str");
  }
 else {
    selectOne.append(selectSql).append(wherePRI).append("String_Node_Str");
    update.setCharAt(update.lastIndexOf("String_Node_Str"),' ');
    update.append(wherePRI).append("String_Node_Str");
  }
  insert.append("String_Node_Str");
  insert.append(proBuilder);
  insert.append("String_Node_Str");
  insert.append("String_Node_Str");
  mapper.append("String_Node_Str");
  sql.setInsertSql(insert.toString());
  sql.setDeleteSql(delete.toString());
  sql.setSelectAllSql(selectAll.toString());
  sql.setSelectSql(selectOne.toString());
  sql.setUpdateSql(update.toString());
  sql.setMapper(mapper.toString());
  return sql;
}

Fixed version (ground truth):
/** 
 * 创建SQL脚本.
 * @param tableInfo 表格属性
 * @param clsName   类型
 * @return sql语句
 */
private static Sql createSql(TableInfo tableInfo,String clsName){
  Sql sql=new Sql();
  StringBuilder insert=new StringBuilder();
  StringBuilder update=new StringBuilder();
  StringBuilder delete=new StringBuilder();
  StringBuilder selectOne=new StringBuilder();
  StringBuilder selectAll=new StringBuilder();
  StringBuilder mapper=new StringBuilder();
  String tableName=tableInfo.getTableName().toUpperCase();
  String dataTime=DatetimeUtil.dateTime();
  mapper.append("String_Node_Str");
  mapper.append("String_Node_Str").append(tableInfo.getTableComment()).append("String_Node_Str");
  mapper.append("String_Node_Str");
  mapper.append("String_Node_Str");
  mapper.append("String_Node_Str").append(ResourceUtils.getProject().getUser()).append("String_Node_Str");
  mapper.append("String_Node_Str").append(dataTime).append("String_Node_Str");
  mapper.append("String_Node_Str");
  mapper.append("String_Node_Str");
  mapper.append("String_Node_Str").append(clsName).append("String_Node_Str");
  String inserId=StringUtil.sqlName("String_Node_Str",clsName);
  insert.append("String_Node_Str").append(inserId).append("String_Node_Str").append(clsName).append("String_Node_Str");
  insert.append("String_Node_Str").append(tableName);
  insert.append("String_Node_Str");
  mapper.append("String_Node_Str");
  mapper.append("String_Node_Str").append(tableName).append("String_Node_Str");
  mapper.append("String_Node_Str").append(clsName.toLowerCase()).append("String_Node_Str").append(tableName).append("String_Node_Str");
  mapper.append("String_Node_Str");
  mapper.append("String_Node_Str");
  mapper.append("String_Node_Str").append(inserId).append("String_Node_Str").append(clsName).append("String_Node_Str").append(clsName.toLowerCase()).append("String_Node_Str");
  String delteId=StringUtil.sqlName("String_Node_Str",clsName);
  delete.append("String_Node_Str").append(delteId).append("String_Node_Str");
  String selectOneId=StringUtil.sqlName("String_Node_Str",clsName);
  String selectOwnId=StringUtil.sqlName("String_Node_Str",clsName);
  selectOne.append("String_Node_Str").append(selectOneId).append("String_Node_Str");
  selectAll.append("String_Node_Str").append(selectOwnId).append("String_Node_Str").append(clsName).append("String_Node_Str");
  mapper.append("String_Node_Str");
  mapper.append("String_Node_Str").append(tableName).append("String_Node_Str");
  mapper.append("String_Node_Str").append(tableName).append("String_Node_Str");
  mapper.append("String_Node_Str");
  mapper.append("String_Node_Str").append(clsName).append("String_Node_Str").append(selectOwnId).append("String_Node_Str");
  String updateId=StringUtil.sqlName("String_Node_Str",clsName);
  update.append("String_Node_Str").append(updateId).append("String_Node_Str").append(clsName).append("String_Node_Str");
  update.append("String_Node_Str").append(tableName).append("String_Node_Str");
  String clsPro;
  StringBuilder proBuilder=new StringBuilder();
  StringBuilder selectSql=new StringBuilder();
  selectSql.append("String_Node_Str");
  String wherePRI="String_Node_Str", columnName;
  boolean pri=false;
  for (  ColumnInfo columnInfo : tableInfo.getColumnList()) {
    clsPro=StringUtil.columnToPropertis(columnInfo.getColumnName());
    columnName=columnInfo.getColumnName().toUpperCase();
    if (columnInfo.getColumnKey().equals("String_Node_Str")) {
      pri=true;
      selectSql.append("String_Node_Str").append(columnName).append("String_Node_Str");
      delete.append(columnInfo.getDataType()).append("String_Node_Str");
      delete.append("String_Node_Str").append(tableName).append("String_Node_Str").append(columnName).append("String_Node_Str").append(clsPro).append("String_Node_Str");
      delete.append("String_Node_Str");
      selectOne.append("String_Node_Str").append(columnInfo.getDataType()).append("String_Node_Str");
      wherePRI="String_Node_Str" + columnName + "String_Node_Str"+ clsPro+ "String_Node_Str";
      mapper.append("String_Node_Str");
      mapper.append("String_Node_Str").append(tableName).append("String_Node_Str");
      mapper.append("String_Node_Str").append(columnInfo.getColumnName().toLowerCase()).append("String_Node_Str").append(columnInfo.getColumnName()).append("String_Node_Str");
      mapper.append("String_Node_Str").append(columnInfo.getColumnName().toLowerCase()).append("String_Node_Str").append("String_Node_Str");
      mapper.append("String_Node_Str");
      mapper.append("String_Node_Str").append(clsName).append("String_Node_Str").append(selectOneId).append("String_Node_Str").append(columnInfo.getDataType()).append("String_Node_Str").append(columnInfo.getColumnName().toLowerCase()).append("String_Node_Str");
      mapper.append("String_Node_Str");
      mapper.append("String_Node_Str").append(tableName).append("String_Node_Str");
      mapper.append("String_Node_Str").append(columnInfo.getColumnName().toLowerCase()).append("String_Node_Str").append(columnInfo.getColumnName()).append("String_Node_Str");
      mapper.append("String_Node_Str");
      mapper.append("String_Node_Str");
      mapper.append("String_Node_Str").append(delteId).append("String_Node_Str").append(columnInfo.getDataType()).append("String_Node_Str").append(columnInfo.getColumnName().toLowerCase()).append("String_Node_Str");
      mapper.append("String_Node_Str");
      mapper.append("String_Node_Str").append(tableName).append("String_Node_Str");
      mapper.append("String_Node_Str").append(clsName.toLowerCase()).append("String_Node_Str").append(tableName).append("String_Node_Str");
      mapper.append("String_Node_Str");
      mapper.append("String_Node_Str");
      mapper.append("String_Node_Str").append(updateId).append("String_Node_Str").append(clsName).append("String_Node_Str").append(clsName.toLowerCase()).append("String_Node_Str");
    }
 else {
      proBuilder.append("String_Node_Str").append(clsPro).append("String_Node_Str");
      insert.append("String_Node_Str").append(columnName).append("String_Node_Str");
      selectSql.append("String_Node_Str").append(columnName).append("String_Node_Str");
      update.append("String_Node_Str").append(columnName).append("String_Node_Str").append(clsPro).append("String_Node_Str");
    }
  }
  insert.setCharAt(insert.lastIndexOf("String_Node_Str"),' ');
  proBuilder.setCharAt(proBuilder.lastIndexOf("String_Node_Str"),' ');
  selectSql.setCharAt(selectSql.lastIndexOf("String_Node_Str"),' ');
  selectSql.append("String_Node_Str").append(tableName).append("String_Node_Str");
  selectAll.append(selectSql).append("String_Node_Str").append("String_Node_Str");
  if (!pri) {
    selectOne=new StringBuilder("String_Node_Str");
    update=new StringBuilder("String_Node_Str");
    delete=new StringBuilder("String_Node_Str");
  }
 else {
    selectOne.append(selectSql).append(wherePRI).append("String_Node_Str");
    update.setCharAt(update.lastIndexOf("String_Node_Str"),' ');
    update.append(wherePRI).append("String_Node_Str");
  }
  insert.append("String_Node_Str");
  insert.append(proBuilder);
  insert.append("String_Node_Str");
  insert.append("String_Node_Str");
  mapper.append("String_Node_Str");
  sql.setInsertSql(insert.toString());
  sql.setDeleteSql(delete.toString());
  sql.setSelectAllSql(selectAll.toString());
  sql.setSelectSql(selectOne.toString());
  sql.setUpdateSql(update.toString());
  sql.setMapper(mapper.toString());
  return sql;
}