import java.util.regex.Matcher; import java.util.regex.Pattern;

public class TableFormatConverter { public static void main(String[] args) { String input = "CREATE TABLE c_archives_read_approve (\n" + " approve_id varchar(32) COMMENT '审批id',\n" + " apply_id varchar(32) COMMENT '申请id',\n" + " is_agree varchar(5) COMMENT '是否同意',\n" + " remark varchar(100) COMMENT '审批备注',\n" + " org_uuid varchar(32) COMMENT '审批单位',\n" + " person_uuid varchar(96) COMMENT '审批人',\n" + " approve_time DATETIME COMMENT '审批时间',\n" + " is_finished INT COMMENT '是否完成',\n" + " sys_create_time DATETIME COMMENT '系统创建时间,程序不要读写',\n" + " sys_modify_time DATETIME COMMENT '系统更新时间,程序不要读写',\n" + " leader_remark varchar(100) COMMENT '分管领导审批意见'\n" + ") COMMENT'电子卷宗调阅审批历史';";

    String output = convertTableFormat(input);
    System.out.println(output);
}

private static String convertTableFormat(String input) {
    Pattern pattern = Pattern.compile("\\s+([a-zA-Z_]+)\\s+([a-zA-Z]+\\(.+\\))\\s+COMMENT\\s+'(.+)'[,;]");
    Matcher matcher = pattern.matcher(input);

    StringBuilder sb = new StringBuilder();
    sb.append("CREATE TABLE ");
    String tableName = "";
    while (matcher.find()) {
        String columnName = matcher.group(1);
        String columnType = matcher.group(2);
        String columnComment = matcher.group(3);

        if (tableName.isEmpty()) {
            tableName = columnName.split("_")[1];
        }

        sb.append("\n  ").append(columnName).append(" ").append(columnType).append(",");
        sb.append("\n    -- ").append(columnComment).append("\n");
    }
    sb.deleteCharAt(sb.lastIndexOf(","));
    sb.append("\n) COMMENT '").append(tableName).append("';");

    return sb.toString();
}

}

// 输出结果: // CREATE TABLE c_archives_read_approve ( // approve_id varchar(32), // -- 审批id // apply_id varchar(32), // -- 申请id // is_agree varchar(5), // -- 是否同意 // remark varchar(100), // -- 审批备注 // org_uuid varchar(32), // -- 审批单位 // person_uuid varchar(96), // -- 审批人 // approve_time DATETIME, // -- 审批时间 // is_finished INT, // -- 是否完成 // sys_create_time DATETIME, // -- 系统创建时间,程序不要读写 // sys_modify_time DATETIME, // -- 系统更新时间,程序不要读写 // leader_remark varchar(100) // -- 分管领导审批意见 // ) COMMENT 'archives_read_approve'

用 Java 写一个程序 把建表语句更改格式CREATE TABLE c_archives_read_approve approve_id varchar32 COMMENT 审批id apply_id varchar32 COMMENT 申请id is_agree varchar5 COMMENT 是否同意 remark varchar100 COMMENT 审批备注 org_uu

原文地址: http://www.cveoy.top/t/topic/eHKP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录