Java 代码实现建表语句格式转换工具
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 ( ' + ' approve_id varchar(32) COMMENT '审批id', ' + ' apply_id varchar(32) COMMENT '申请id', ' + ' is_agree varchar(5) COMMENT '是否同意', ' + ' remark varchar(100) COMMENT '审批备注', ' + ' org_uuid varchar(32) COMMENT '审批单位', ' + ' person_uuid varchar(96) COMMENT '审批人', ' + ' approve_time DATETIME COMMENT '审批时间', ' + ' is_finished INT COMMENT '是否完成', ' + ' sys_create_time DATETIME COMMENT '系统创建时间,程序不要读写', ' + ' sys_modify_time DATETIME COMMENT '系统更新时间,程序不要读写', ' + ' leader_remark varchar(100) COMMENT '分管领导审批意见' ' + ') 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';
原文地址: https://www.cveoy.top/t/topic/nXG9 著作权归作者所有。请勿转载和采集!