support more issue like blank/'/" as split-character

This commit is contained in:
moshowgame@126.com 2018-09-16 13:16:38 +08:00
parent 6b566ca9c2
commit 42c1f04789
2 changed files with 24 additions and 9 deletions

View File

@ -2,15 +2,18 @@
![image](https://img.shields.io/badge/CodeGenerator-%E2%98%85%E2%98%85%E2%98%85-green.svg)
SpringBootCodeGenerator
----
SpringBoot代码生成器。用于生成mybatis和jpa相关代码基于xxl-codegenerator。
基于SpringBoot2+xxl-codegenerator的代码生成器。用于生成mybatis和jpa相关代码目前jpa的为主mybatis的后续进行优化。
<br><br>
感谢bejson三叔将他部署在http://java.bejson.com/generator上
<br><br>
<table><tbody>
<tr><td>访问路径</td> <td>http://127.0.0.1:1234/generator</td></tr>
<tr><td>在线地址</td> <td>http://java.bejson.com/generator</td></tr>
<tr><td>CSDN博客</td> <td>http://blog.csdn.net/moshowgame</td></tr>
<tr><td></td> <td></td></tr>
<tr><td>更新日期</td> <td>更新内容</td></tr>
<tr><td>20180916<td>补充char/clob/blob/json等类型如果类型未知默认为String。</td></tr>
<tr><td>20180916-2<td>优化oracle支持空格/"/'的支持,以及多余内容的剔除。</td></tr>
<tr><td>20180916-1<td>补充char/clob/blob/json等类型如果类型未知默认为String。</td></tr>
<tr><td>20180915<td>新增Swagger-UI模板。修复一些命名和导入问题。JPA的Entity默认第一个字段为Id如果不是请手工修改。</td></tr>
<tr><td>20180913<td>修复字段没有描述以及类型为DATE型导致的问题。新增JPA的Controller模板。</td></tr>
<tr><td>20180831<td>初始化项目。新增JPA系列Entity+Repository模板。</td></tr>

View File

@ -29,7 +29,7 @@ public class TableParseUtil {
if (tableSql==null || tableSql.trim().length()==0) {
throw new CodeGenerateException("Table structure can not be empty.");
}
tableSql = tableSql.trim();
tableSql = tableSql.trim().replaceAll("'","`").replaceAll("\"","`").toLowerCase();
// table Name
String tableName = null;
@ -43,6 +43,9 @@ public class TableParseUtil {
if (tableName.contains("`")) {
tableName = tableName.substring(tableName.indexOf("`")+1, tableName.lastIndexOf("`"));
}else{
//空格开头的需要替换掉\n\t空格
tableName=tableName.replaceAll(" ","").replaceAll("\n","").replaceAll("\t","");
}
// class Name
@ -91,13 +94,22 @@ public class TableParseUtil {
String[] fieldLineList = fieldListTmp.split(",");
if (fieldLineList.length > 0) {
for (String columnLine :fieldLineList) {
columnLine = columnLine.trim(); // `userid` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
if (columnLine.startsWith("`")){
columnLine = columnLine.replaceAll("\n","").replaceAll("\t","").trim(); // `userid` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
if (!columnLine.startsWith("CONSTRAINT")&&!columnLine.startsWith("USING")
&&!columnLine.startsWith("STORAGE")&&!columnLine.startsWith("PCTINCREASE")
&&!columnLine.startsWith("BUFFER_POOL")&&!columnLine.startsWith("TABLESPACE")){
// column Name
columnLine = columnLine.substring(1); // userid` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
String columnName = columnLine.substring(0, columnLine.indexOf("`")); // userid
columnLine = columnLine.substring(1);
//2018-9-16 zhengkai 支持'符号以及空格的oracle语句// userid` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
String columnName = "";
if(columnLine.indexOf("`")>-1) {
columnLine.substring(0, columnLine.indexOf("`"));
}else if(columnLine.indexOf("'")>-1){
columnName = columnLine.substring(0, columnLine.indexOf("'"));
}else{
columnName = columnLine.substring(0, columnLine.indexOf(" "));
}
// field Name
String fieldName = StringUtils.lowerCaseFirst(StringUtils.underlineToCamelCase(columnName));
if (fieldName.contains("_")) {