From e22e9b46ae0c9f4835262471cef732d158c1df0c Mon Sep 17 00:00:00 2001 From: wangdf Date: Tue, 26 Sep 2017 19:31:13 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B8=AE=E7=9D=80?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b2148bc..6db57d3 100644 --- a/README.md +++ b/README.md @@ -1 +1,3 @@ +> mybatis代码生成器,参考蚂蚁金服idalgen针对mybatis重新定义的一套代码生成器,idalgen在蚂蚁内部绝大多数应用都强制使用,优化版代码生成器除具有idalgen类似语法外,额外提供了常用的扩展功能 如List 自动转 Map,Map>等进一步减少体力开发 + [项目文档](http://git.oschina.net/bangis/mybatis.generator/wikis/pages) \ No newline at end of file -- Gitee From 0f96bcf668be361c28b98ee139414d9690f05634 Mon Sep 17 00:00:00 2001 From: wangdf Date: Wed, 4 Oct 2017 11:29:45 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89cloumn=20=E7=B1=BBimport?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatis/gen/dataloaders/DalgenLoader.java | 13 +- .../dalgen/mybatis/gen/model/java/Base.java | 61 +++++--- src/main/resources/dalgen/config/config.xml | 6 +- .../configTables/CF_METADATA_CONFIG.xml | 139 ++++++++++++++++++ .../dalgen/ext/mybatis-config.xml.ftl | 4 +- .../dalgen/templates/dalgen/DO.java.ftl | 2 + .../cn/dalgen/mybatis/gen/DalgenMojoTest.java | 2 +- 7 files changed, 196 insertions(+), 31 deletions(-) create mode 100644 src/main/resources/dalgen/configTables/CF_METADATA_CONFIG.xml diff --git a/src/main/java/cn/dalgen/mybatis/gen/dataloaders/DalgenLoader.java b/src/main/java/cn/dalgen/mybatis/gen/dataloaders/DalgenLoader.java index 4478dc4..edf5f1d 100755 --- a/src/main/java/cn/dalgen/mybatis/gen/dataloaders/DalgenLoader.java +++ b/src/main/java/cn/dalgen/mybatis/gen/dataloaders/DalgenLoader.java @@ -828,7 +828,18 @@ public class DalgenLoader extends AbstractDalgenLoader { base.addImport(classType); } //返回方法 - return StringUtils.substring(classType, lastIdx + 1); + if (classType.indexOf("<") > 0 && classType.indexOf(".") > 0) { + String _importClass = classType.substring(0, classType.indexOf("<")); + _importClass = StringUtils.substring(_importClass, StringUtils.lastIndexOf(_importClass, ".") + 1); + //处理<>内部的类 + String __importClass = classType.substring(classType.indexOf("<") + 1, classType.indexOf(">")); + if (StringUtils.isNotBlank(__importClass) && __importClass.contains(".")) { + __importClass = StringUtils.substring(__importClass, StringUtils.lastIndexOf(__importClass, ".") + 1); + } + return _importClass+"<"+__importClass+">"; + } else{ + return StringUtils.substring(classType, lastIdx + 1); + } } } diff --git a/src/main/java/cn/dalgen/mybatis/gen/model/java/Base.java b/src/main/java/cn/dalgen/mybatis/gen/model/java/Base.java index 86bbe2b..fee0639 100755 --- a/src/main/java/cn/dalgen/mybatis/gen/model/java/Base.java +++ b/src/main/java/cn/dalgen/mybatis/gen/model/java/Base.java @@ -15,21 +15,21 @@ public class Base { /** * The Class name. */ - private String className; + private String className; /** * The Desc. */ - private String desc; + private String desc; /** * The Package name. */ - private String packageName; + private String packageName; /** * The Table name. */ - private String tableName; + private String tableName; /** * The Import lists. @@ -78,10 +78,9 @@ public class Base { * @return the class path */ public String getClassPath() { - return StringUtils.replace(packageName,".","/"); + return StringUtils.replace(packageName, ".", "/"); } - /** * Gets import lists. * @@ -97,21 +96,35 @@ public class Base { * @param importClass the import class */ public void addImport(String importClass) { - String _importClass =importClass; - if(importClass.indexOf("<")>0 && importClass.indexOf(".")>0) { + String _importClass = importClass; + String __importClass; + if (importClass.indexOf("<") > 0 && importClass.indexOf(".") > 0) { _importClass = importClass.substring(0, importClass.indexOf("<")); - this.importLists.add(_importClass); + add2Import(_importClass); + //处理<>内部的类 + __importClass = importClass.substring(importClass.indexOf("<") + 1, importClass.indexOf(">")); + if (StringUtils.isNotBlank(__importClass) && __importClass.contains(".")) { + add2Import(__importClass); + } + } - if(classMap.containsKey(_importClass.toLowerCase())){ + if (classMap.containsKey(_importClass.toLowerCase())) { final String classZ = classMap.get(_importClass.toLowerCase()); - if(StringUtils.isNotBlank(classZ)){ + if (StringUtils.isNotBlank(classZ)) { if (!this.importLists.contains(classZ)) { this.importLists.add(classZ); } } - }else if (!this.importLists.contains(_importClass)&&importClass.indexOf("<")<0) { + } else if (!this.importLists.contains(_importClass) && importClass.indexOf("<") < 0) { this.importLists.add(_importClass); } + + } + + private void add2Import(String classz) { + if (StringUtils.isNotBlank(classz) && !this.importLists.contains(classz)) { + this.importLists.add(classz); + } } /** @@ -150,7 +163,6 @@ public class Base { this.tableName = tableName; } - /** * Returns a string representation of the object. In general, the * {@code toString} method returns a string that @@ -177,17 +189,18 @@ public class Base { return ReflectionToStringBuilder.toString(this); } - private static final Map classMap = Maps.newHashMap(); + private static final Map classMap = Maps.newHashMap(); + static { - classMap.put("long",null); - classMap.put("int",null); - classMap.put("double",null); - classMap.put("float",null); - classMap.put("integer",null); - classMap.put("boolean",null); - classMap.put("byte",null); - classMap.put("string",null); - classMap.put("date","java.util.Date"); - classMap.put("list","java.util.List"); + classMap.put("long", null); + classMap.put("int", null); + classMap.put("double", null); + classMap.put("float", null); + classMap.put("integer", null); + classMap.put("boolean", null); + classMap.put("byte", null); + classMap.put("string", null); + classMap.put("date", "java.util.Date"); + classMap.put("list", "java.util.List"); } } diff --git a/src/main/resources/dalgen/config/config.xml b/src/main/resources/dalgen/config/config.xml index b44eacb..44a4f7c 100755 --- a/src/main/resources/dalgen/config/config.xml +++ b/src/main/resources/dalgen/config/config.xml @@ -23,11 +23,11 @@ - - + + - + diff --git a/src/main/resources/dalgen/configTables/CF_METADATA_CONFIG.xml b/src/main/resources/dalgen/configTables/CF_METADATA_CONFIG.xml new file mode 100644 index 0000000..04c6e59 --- /dev/null +++ b/src/main/resources/dalgen/configTables/CF_METADATA_CONFIG.xml @@ -0,0 +1,139 @@ + + + + + + + ID,METADATA,SYS,CODE,NAME,PATH,TYPE,PARENT + + + + + sf.ID,sf.METADATA,sf.SYS,sf.CODE,sf.NAME,sf.PATH,sf.TYPE,sf.PARENT + + + + + SELECT + LAST_INSERT_ID() + + + + + + + + INSERT INTO CF_METADATA_CONFIG( + ID + ,METADATA + ,SYS + ,CODE + ,NAME + ,PATH + ,TYPE + ,PARENT + )VALUES + + ( + null + , #{item.metadata,jdbcType=OTHER} + , #{item.sys,jdbcType=VARCHAR} + , #{item.code,jdbcType=VARCHAR} + , #{item.name,jdbcType=VARCHAR} + , #{item.path,jdbcType=VARCHAR} + , #{item.type,jdbcType=VARCHAR} + , #{item.parent,jdbcType=VARCHAR} + ) + + + + + + + + + + SELECT * + FROM CF_METADATA_CONFIG + WHERE + + + + + + + + + + + + + + SELECT * + FROM CF_METADATA_CONFIG + WHERE + + +
diff --git a/src/main/resources/dalgen/ext/mybatis-config.xml.ftl b/src/main/resources/dalgen/ext/mybatis-config.xml.ftl index 1dd812a..73fca66 100644 --- a/src/main/resources/dalgen/ext/mybatis-config.xml.ftl +++ b/src/main/resources/dalgen/ext/mybatis-config.xml.ftl @@ -7,7 +7,7 @@ <#assign enumTypes = pp.newWritableSequence()> <#assign jsonTypes = pp.newWritableSequence()> <#assign othTypes = pp.newWritableSequence()> -<#list tmpTables as tmpTable> +<#--<#list tmpTables as tmpTable> <#list tmpTable.columns as column> <#if column.javatype?lower_case?starts_with(dalgen.config.getCustomerProperty("enumPathBase")!null)> <#if !enumTypes?seq_contains(column.javatype)> @@ -21,7 +21,7 @@ <@pp.add seq=othTypes value="${column.javatype}" /> - +--> diff --git a/src/main/resources/dalgen/templates/dalgen/DO.java.ftl b/src/main/resources/dalgen/templates/dalgen/DO.java.ftl index a02823e..640ca2e 100755 --- a/src/main/resources/dalgen/templates/dalgen/DO.java.ftl +++ b/src/main/resources/dalgen/templates/dalgen/DO.java.ftl @@ -4,7 +4,9 @@ package ${DO.packageName}; <#list DO.importLists as import> +<#if !import?ends_with("${DO.className}")> import ${import}; + /** diff --git a/src/test/java/cn/dalgen/mybatis/gen/DalgenMojoTest.java b/src/test/java/cn/dalgen/mybatis/gen/DalgenMojoTest.java index d4cbaae..e63d356 100644 --- a/src/test/java/cn/dalgen/mybatis/gen/DalgenMojoTest.java +++ b/src/test/java/cn/dalgen/mybatis/gen/DalgenMojoTest.java @@ -57,7 +57,7 @@ public class DalgenMojoTest extends TestCase{ try { ConfigUtil.readConfig(config); - ConfigUtil.setCmd("*"); + ConfigUtil.setCmd("cf_metadata_config"); } catch (IOException e) { LOG.error(e); } -- Gitee From 7662b2c87e152d1c628d0b604cff280352ba936f Mon Sep 17 00:00:00 2001 From: wangdf Date: Fri, 6 Oct 2017 13:35:21 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89cloumn=20=E7=B1=BBimport?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/dalgen/config/table-config-1.0.dtd | 1 + .../resources/dalgen/configTables/CF_METADATA_CONFIG.xml | 2 +- src/main/resources/dalgen/templates/dalgen/Page.java.ftl | 6 ------ 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/main/resources/dalgen/config/table-config-1.0.dtd b/src/main/resources/dalgen/config/table-config-1.0.dtd index 5d14643..a0f9920 100755 --- a/src/main/resources/dalgen/config/table-config-1.0.dtd +++ b/src/main/resources/dalgen/config/table-config-1.0.dtd @@ -31,6 +31,7 @@ javatype CDATA #REQUIRED jdbctype CDATA #REQUIRED remark CDATA #IMPLIED + typeHandler CDATA #IMPLIED testVal CDATA #IMPLIED relatedColumn CDATA #IMPLIED > diff --git a/src/main/resources/dalgen/configTables/CF_METADATA_CONFIG.xml b/src/main/resources/dalgen/configTables/CF_METADATA_CONFIG.xml index 04c6e59..f2127d7 100644 --- a/src/main/resources/dalgen/configTables/CF_METADATA_CONFIG.xml +++ b/src/main/resources/dalgen/configTables/CF_METADATA_CONFIG.xml @@ -1,6 +1,6 @@ - + diff --git a/src/main/resources/dalgen/templates/dalgen/Page.java.ftl b/src/main/resources/dalgen/templates/dalgen/Page.java.ftl index 8049952..06a44e2 100644 --- a/src/main/resources/dalgen/templates/dalgen/Page.java.ftl +++ b/src/main/resources/dalgen/templates/dalgen/Page.java.ftl @@ -6,7 +6,6 @@ package ${paging.packageName}; <#list paging.importLists as import> import ${import}; -import org.apache.commons.lang.builder.ToStringBuilder; /** * The table ${paging.desc!} @@ -37,10 +36,5 @@ public class ${paging.className} extends BasePage<${paging.resultType}>{ return ${fields.name}; } - - @Override - public String toString(){ - return ToStringBuilder.reflectionToString(this); - } } -- Gitee From e9cb1cbf7264f120db2faac81767469724153682 Mon Sep 17 00:00:00 2001 From: wangdf Date: Thu, 12 Oct 2017 16:39:36 +0800 Subject: [PATCH 4/4] toString --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 6a6fc4d..3893f4e 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ maven-plugin ${project.groupId}:${project.artifactId} - 1.0.6-SNAPSHOT + 1.0.6 https://gitee.com/bangis/mybatis.generator mybatis generator mapper.xml mapper.java dao.java do.java paging map list @@ -224,7 +224,7 @@ cn.dalgen.plugins mybatis-maven-plugin - 1.0.6-SNAPSHOT + 1.0.6 out -- Gitee