diff --git a/README.md b/README.md index b2148bc6fc4fb9274e7eeed74f44e569760ccb0c..6db57d35caf004eafce70db8e1eff90046979427 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 diff --git a/pom.xml b/pom.xml index 6a6fc4dc93701a65ec4df02b4c80b2583cf0f50a..3893f4e50a2c9d41ececee64c0b4e7fda39b8c74 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 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 4478dc41f5d0fcf5b38aed60eb7966d92dd59346..edf5f1deefc860bafd3c473f0431b754bdf0ea0e 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 86bbe2bbb8ee76db20079251e95f58542f1aa582..fee0639292291b0fab7a86e684c9f02d5c8b0994 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 b44eacbf230ece99056e21d6712dbbb09c7530d0..44a4f7c16fe4a05d9af0108e7ca14f9b2d2efba9 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/config/table-config-1.0.dtd b/src/main/resources/dalgen/config/table-config-1.0.dtd index 5d146438569360dfd73d209a6c0bc3f66579782a..a0f9920f29bf2be8ceb425e9a16646fc91bf25f9 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 new file mode 100644 index 0000000000000000000000000000000000000000..f2127d74c8e12625384ff0a89546e27f9941b6dc --- /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 1dd812a37a6d9f009fe003d00fad7b0c4aa0bc33..73fca66162843c4495095ecef9ceb8bc0fe06564 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 a02823efebcd6f2345d01dea6ff3013406776903..640ca2eddf64fc6086caccfc82d25eb278d5ead3 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/main/resources/dalgen/templates/dalgen/Page.java.ftl b/src/main/resources/dalgen/templates/dalgen/Page.java.ftl index 8049952d4a8ecdf3ea1a37a003dd85917fb54e83..06a44e23bac66a0b85625685d43ae5ae11de7008 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); - } } diff --git a/src/test/java/cn/dalgen/mybatis/gen/DalgenMojoTest.java b/src/test/java/cn/dalgen/mybatis/gen/DalgenMojoTest.java index d4cbaae9adb3f3b6fab0aa49457ab5e0b4ccb08d..e63d35694150d4cabb93105d8246f0d65a9a097b 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); }