diff --git a/dalgen/abs/coll_org.xml b/dalgen/abs/coll_org.xml
new file mode 100644
index 0000000000000000000000000000000000000000..46a827317c248267482ec08abba52635fed6414f
--- /dev/null
+++ b/dalgen/abs/coll_org.xml
@@ -0,0 +1,183 @@
+
+
+
+
+
+ ID,STATUS,ORG_CODE,ORG_NAME,ORG_TYPE
+ ,GMT_CREATE,GMT_MODIFIED
+
+
+
+
+ sf.ID,sf.STATUS,sf.ORG_CODE,sf.ORG_NAME,sf.ORG_TYPE
+ ,sf.GMT_CREATE,sf.GMT_MODIFIED
+
+
+
+
+
+
+
+
+
+ SELECT
+ LAST_INSERT_ID()
+
+
+
+
+
+
+
+ INSERT INTO coll_org(
+ ID
+ ,STATUS
+ ,ORG_CODE
+ ,ORG_NAME
+ ,ORG_TYPE
+ ,GMT_CREATE
+ ,GMT_MODIFIED
+ )VALUES
+
+ (
+ null
+ , #{item.status,jdbcType=VARCHAR}
+ , #{item.orgCode,jdbcType=VARCHAR}
+ , #{item.orgName,jdbcType=VARCHAR}
+ , #{item.orgType,jdbcType=VARCHAR}
+ , now()
+ , now()
+ )
+
+
+
+
+ INSERT INTO coll_org(
+ ID
+ ,STATUS
+ ,ORG_CODE
+ ,ORG_NAME
+ ,ORG_TYPE
+ ,GMT_CREATE
+ ,GMT_MODIFIED
+ )VALUES
+
+ (
+ null
+ , #{item.status,jdbcType=VARCHAR}
+ , #{item.orgCode,jdbcType=VARCHAR}
+ , #{item.orgName,jdbcType=VARCHAR}
+ , #{item.orgType,jdbcType=VARCHAR}
+ , now()
+ , now()
+ )
+
+
+
+
+
+
+
+
+
+ SELECT *
+ FROM coll_org
+ WHERE
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SELECT *
+ FROM coll_org
+ WHERE
+
+
+
+
+ SELECT *
+ FROM diary_relation AS t1 JOIN
+ (
+ SELECT ROUND
+ (
+ RAND() \\*
+ (
+ (SELECT MAX(id) FROM diary_relation)-(SELECT MIN(id) FROM diary_relation)
+ ) +
+ (
+ SELECT MIN(id) FROM diary_relation
+ )
+ ) AS id
+ ) AS t2
+ WHERE t1.id >= t2.id
+
+ AND t1.level = #{level,jdbcType=INTEGER}
+ AND t1.level = #{a,jdbcType=INTEGER}
+
+ ORDER BY t1.id LIMIT #{limit};
+
+
+ SELECT * FROM loan_verify_data_task WHERE id >= (SELECT floor(RAND() /*/ (SELECT MAX(id) FROM loan_verify_data_task))) ORDER BY id LIMIT 0,5
+
+
diff --git a/dalgen/abssqrTables/Ste.xml b/dalgen/abssqrTables/Ste.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e2cc08aeae3070df69172d1f3cad61443d6ea577
--- /dev/null
+++ b/dalgen/abssqrTables/Ste.xml
@@ -0,0 +1,15 @@
+
+
diff --git a/dalgen/config/README.md b/dalgen/config/README.md
index 7826111d2412f9e4ae2504876146882d474c3c29..7c20bb7b957669294b4c466480a4d91e966b09e8 100644
--- a/dalgen/config/README.md
+++ b/dalgen/config/README.md
@@ -3,5 +3,5 @@
[项目文档](http://git.oschina.net/bangis/mybatis.generator/wikis/pages)
-
+
diff --git a/dalgen/config/config.xml b/dalgen/config/config.xml
index 93ea6163ce048885f14dee87ff648586838c3ef4..d267009a05f9a1184090e8a8ba2b141892b94c34 100644
--- a/dalgen/config/config.xml
+++ b/dalgen/config/config.xml
@@ -92,6 +92,11 @@
-
+
+
+
+
+
+
diff --git a/dalgen/config/table-config-1.0.dtd b/dalgen/config/table-config-1.0.dtd
index 3591f224711d6ce0a4f5f4ca81f6737fa804cd9b..fe04c1d12272be2cd2a196cee0c46ff4f5376723 100644
--- a/dalgen/config/table-config-1.0.dtd
+++ b/dalgen/config/table-config-1.0.dtd
@@ -142,6 +142,7 @@
true 返回Map,?> 其中 ?分表对应 mapK,mapV类型
list 返回Map,List>> 其中 ?分表对应 mapK,mapV类型
set 返回Map,Set>> 其中 ?分表对应 mapK,mapV类型
+ autoGen insert insertBatch update 时生效
-->
diff --git a/dalgen/dalgenTables/MY_DEPT.xml b/dalgen/dalgenTables/MY_DEPT.xml
deleted file mode 100644
index fecf333f5729ce0bca5b321daa78976c563aacde..0000000000000000000000000000000000000000
--- a/dalgen/dalgenTables/MY_DEPT.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-
-
-
- ID,SEX,NAME
-
-
-
-
- sf.ID,sf.SEX,sf.NAME
-
-
-
-
- SELECT
- LAST_INSERT_ID()
-
-
-
-
-
-
-
- INSERT INTO MY_DEPT(
- ID
- ,SEX
- ,NAME
- )VALUES
-
- (
- null
- , #{item.sex,jdbcType=VARCHAR}
- , #{item.name,jdbcType=VARCHAR}
- )
-
-
-
-
-
-
-
-
-
- SELECT *
- FROM MY_DEPT
- WHERE
-
-
-
diff --git a/dalgen/dalgenTables/MY_USER.xml b/dalgen/dalgenTables/MY_USER.xml
deleted file mode 100644
index 786c64a92c496dd18eb779b33285d16362723328..0000000000000000000000000000000000000000
--- a/dalgen/dalgenTables/MY_USER.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-
-
-
-
-
-
-
-
- sf.ID,sf.SEX,sf.NAME
-
-
-
-
- SELECT
- LAST_INSERT_ID()
-
-
-
-
-
-
-
- INSERT INTO MY_USER(
- ID
- ,SEX
- ,NAME
- )VALUES
-
- (
- null
- , #{item.sex,jdbcType=VARCHAR}
- , #{item.name,jdbcType=VARCHAR}
- )
-
-
-
-
-
-
-
-
-
- SELECT *
- FROM MY_USER
- WHERE
-
-
-
diff --git a/dalgen/template/dalgen/BasePage.java.ftl b/dalgen/template/dalgen/BasePage.java.ftl
deleted file mode 100644
index 9418be3f75ce2e1c3a956150d6c1db2c31a28d34..0000000000000000000000000000000000000000
--- a/dalgen/template/dalgen/BasePage.java.ftl
+++ /dev/null
@@ -1,284 +0,0 @@
-<@pp.dropOutputFile />
-<#if dalgen.pagings?? && dalgen.pagings?size gt 0>
-<#assign paging =dalgen.pagings?first>
- <@pp.changeOutputFile name = "/main/java/${paging.baseClassPath}/BasePage.java" />
-package ${paging.basePackageName};
-
-import java.util.List;
-import java.util.Map;
-import com.google.common.collect.Maps;
-
-/**
- * 用于分页的工具类
- */
-public class BasePage {
-
- private List datas; //对象记录结果集
- private int total = 0; // 总记录数
- private int limit = 20; // 默认每页显示记录数
- private int pageNos = 1; // 总页数
- private int currPageNo = 1; // 当前页
-
- private boolean isFirstPage = false; //是否为第一页
- private boolean isLastPage = false; //是否为最后一页
- private boolean hasPreviousPage = false; //是否有前一页
- private boolean hasNextPage = false; //是否有下一页
-
- private int navigatePages = 8; //导航页码数
- private int[] navigatePageNos; //所有导航页号
-
- private Map> dataMenus;//数据拥有的菜单
-
-
- private Map dataDict;//数据字典
-
- private void init() {
- this.pageNos = (this.total - 1) / this.limit + 1;
-
- //根据输入可能错误的当前号码进行自动纠正
- if (currPageNo < 1) {
- this.currPageNo = 1;
- } else if (currPageNo > this.pageNos) {
- this.currPageNo = this.pageNos;
- }
-
- //基本参数设定之后进行导航页面的计算
- calcNavigatePageNumbers();
-
- //以及页面边界的判定
- judgePageBoudary();
- }
-
- /**
- * 计算导航页
- */
- private void calcNavigatePageNumbers() {
- //当总页数小于或等于导航页码数时
- if (pageNos <= navigatePages) {
- navigatePageNos = new int[pageNos];
- for (int i = 0; i < pageNos; i++) {
- navigatePageNos[i] = i + 1;
- }
- } else { //当总页数大于导航页码数时
- navigatePageNos = new int[navigatePages];
- int startNum = currPageNo - navigatePages / 2;
- int endNum = currPageNo + navigatePages / 2;
-
- if (startNum < 1) {
- startNum = 1;
- //(最前navigatePages页
- for (int i = 0; i < navigatePages; i++) {
- navigatePageNos[i] = startNum++;
- }
- } else if (endNum > pageNos) {
- endNum = pageNos;
- //最后navigatePages页
- for (int i = navigatePages - 1; i >= 0; i--) {
- navigatePageNos[i] = endNum--;
- }
- } else {
- //所有中间页
- for (int i = 0; i < navigatePages; i++) {
- navigatePageNos[i] = startNum++;
- }
- }
- }
- }
-
- /**
- * 判定页面边界
- */
- private void judgePageBoudary() {
- isFirstPage = currPageNo == 1;
- isLastPage = currPageNo == pageNos && currPageNo != 1;
- hasPreviousPage = currPageNo > 1;
- hasNextPage = currPageNo < pageNos;
- }
-
- /**
- * 得到数据
- *
- * @return
- */
- public List getDatas() {
- return datas;
- }
-
- /**
- * 设置数据
- *
- * @param datas
- */
- public void setDatas(List datas) {
- this.datas = datas;
- }
-
- /**
- * 得到记录总数
- *
- * @return {int}
- */
- public int getTotal() {
- return total;
- }
-
- /**
- * 得到记录总数
- *
- * @return {int}
- */
- public int getTotalCount() {
- return total;
- }
-
- /**
- * 设置总记录数
- *
- * @param total
- */
- public void setTotal(int total) {
- this.total = total;
- init();
- }
-
- /**
- * 得到每页显示多少条记录
- *
- * @return {int}
- */
- public int getLimit() {
- return limit;
- }
-
- /**
- * 设置每页多少记录
- *
- * @param limit
- */
- public void setLimit(int limit) {
- this.limit = limit;
- }
-
- /**
- * 设置导航线上几页
- *
- * @param navigatePages
- */
- public void setNavigatePages(int navigatePages) {
- this.navigatePages = navigatePages;
- }
-
- /**
- * 得到页面总数
- *
- * @return {int}
- */
- public int getPageNos() {
- return pageNos;
- }
-
- /**
- * 得到当前页号
- *
- * @return {int}
- */
- public int getCurrPageNo() {
- return currPageNo;
- }
-
- /**
- * 得到当前页号
- *
- * @return {int}
- */
- public int getCurrentPage() {
- return currPageNo;
- }
-
- /**
- * 得到所有导航页号
- *
- * @return {int[]}
- */
- public int[] getNavigatePageNos() {
- return navigatePageNos;
- }
-
- public boolean isFirstPage() {
- return isFirstPage;
- }
-
- public boolean isLastPage() {
- return isLastPage;
- }
-
- public boolean hasPreviousPage() {
- return hasPreviousPage;
- }
-
- public boolean hasNextPage() {
- return hasNextPage;
- }
-
- /**
- * 设置当前行
- * @param currPageNo
- */
- public void setCurrPageNo(int currPageNo){
- if(currPageNo==0){
- this.currPageNo =1;
- }else {
- this.currPageNo = currPageNo;
- }
- }
-
- /**
- * 得到开始行
- */
- public int getStartRow(){
- return (this.currPageNo-1)*this.limit;
- }
-
- public Map> getDataMenus() {
- return dataMenus;
- }
-
- public void setDataMenus(Map> dataMenus) {
- this.dataMenus = dataMenus;
- }
-
- public Map getDataDict() {
- return dataDict;
- }
-
- public void setDataDict(Map dataDict) {
- this.dataDict = dataDict;
- }
-
- public void addDataDict(String key,Object dataDict) {
- if(this.dataDict==null){
- this.dataDict = Maps.newHashMap();
- }
- this.dataDict.put(key,dataDict);
- }
-
- public String toTString() {
- init();
- StringBuffer sb = new StringBuffer();
- sb.append("[").append("total=").append(total).append(",pageNos=").append(pageNos)
- .append(",currPageNo=").append(currPageNo).append(",limit=").append(limit)
- .append(",isFirstPage=").append(isFirstPage).append(",isLastPage=")
- .append(isLastPage).append(",hasPreviousPage=").append(hasPreviousPage)
- .append(",hasNextPage=").append(hasNextPage).append(",navigatePageNos=");
- int len = navigatePageNos.length;
- if (len > 0){
- sb.append(navigatePageNos[0]);}
- for (int i = 1; i < len; i++) {
- sb.append(" " + navigatePageNos[i]);
- }
- sb.append(",datas.size=" + (datas!=null?datas.size():0));
- sb.append("]");
- return sb.toString();
- }
-}
-#if>
diff --git a/dalgen/template/dalgen/DAO.java.ftl b/dalgen/template/dalgen/DAO.java.ftl
deleted file mode 100644
index 61b2a45052dcdb5282b44d835f50e46410ce0042..0000000000000000000000000000000000000000
--- a/dalgen/template/dalgen/DAO.java.ftl
+++ /dev/null
@@ -1,106 +0,0 @@
-<@pp.dropOutputFile />
-<#import "../lib/function.ftl" as fun/>
-<#list dalgen.daos as dao>
- <@pp.changeOutputFile name = "/main/java/${dao.classPath}/${dao.className}.java" />
-package ${dao.packageName};
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Repository;
-<#list dao.importLists as import>
-import ${import};
-#list>
-
-/**
-* The Table ${dao.tableName!}.
-* ${dao.desc!}
-*/
-<#if dalgen.config.getExtParam("Repository") == "true">@Repository#if>
-public class ${dao.className}{
-
- @Autowired
- private ${dao.doMapper.className} ${dao.doMapper.className?uncap_first};
-
- <#list dao.motheds as method>
- /**
- * desc:${method.desc!method.name!}.
- <#list method.params as param>
- * @param ${param.param} ${param.param}
- #list>
- * @return ${fun.methodClass(method)}
- */
- public ${fun.methodClass(method)} ${method.name}(<#list method.params as param><#if param_index gt 0>,#if>${param.paramType!} <#assign pagingParam = param.param/>${param.param}#list>){
- <#if method.pagingFlag == "true">
- <#if method.pagingCustomFlag == "true">
- int total = ${dao.doMapper.className?uncap_first}.${method.pagingCntOperation}(<#list method.params as param><#if param_index gt 0>, #if>${param.param}#list>);
- <#else >
- int total = ${dao.doMapper.className?uncap_first}.${method.name}Count(<#list method.params as param><#if param_index gt 0>, #if>${param.param}#list>);
- #if>
- if(total>0){
- ${pagingParam}.setDatas(${dao.doMapper.className?uncap_first}.${method.name}Result(<#list method.params as param><#if param_index gt 0>, #if>${param.param}#list>));
- }
- ${pagingParam}.setTotal(total);
- return ${pagingParam};
- <#elseif method.kvMap?? && method.kvMap == "true">
- ${fun.methodClass(method)} result = new LinkedHashMap();
- ${method.returnClass} resultList = ${dao.doMapper.className?uncap_first}.${method.name}(<#list method.params as param><#if param_index gt 0>, #if>${param.param}#list>);
- if(resultList!=null && !resultList.isEmpty()){
- for(${fun.fanType2Type(method.returnClass)} entity:resultList){
- <#if method.mapV??>
- result.put(entity.get${method.mapK}(),entity.get${method.mapV}());
- <#else >
- result.put(entity.get${method.mapK}(),entity);
- #if>
- }
- }
- return result;
- <#elseif method.kvMap?? && method.kvMap == "list">
- ${fun.methodClass(method)} result = new LinkedHashMap();
- ${method.returnClass} resultList = ${dao.doMapper.className?uncap_first}.${method.name}(<#list method.params as param><#if param_index gt 0>, #if>${param.param}#list>);
- if(resultList!=null && !resultList.isEmpty()){
- for(${fun.fanType2Type(method.returnClass)} entity:resultList){
- <#if method.mapV??>
- List<${method.mapVType}> vList = result.get(entity.get${method.mapK}());
- <#else >
- List<${fun.fanType2Type(method.returnClass)}> vList = result.get(entity.get${method.mapK}());
- #if>
- if(vList == null){
- vList = new ArrayList();
- result.put(entity.get${method.mapK}(),vList);
- }
- <#if method.mapV??>
- vList.add(entity.get${method.mapV}());
- <#else >
- vList.add(entity);
- #if>
- }
- }
- return result;
- <#elseif method.kvMap?? && method.kvMap == "set">
- ${fun.methodClass(method)} result = new LinkedHashMap();
- ${method.returnClass} resultList = ${dao.doMapper.className?uncap_first}.${method.name}(<#list method.params as param><#if param_index gt 0>, #if>${param.param}#list>);
- if(resultList!=null && !resultList.isEmpty()){
- for(${fun.fanType2Type(method.returnClass)} entity:resultList){
- <#if method.mapV??>
- Set<${method.mapVType}> vSet = result.get(entity.get${method.mapK}());
- <#else >
- Set<${fun.fanType2Type(method.returnClass)}> vSet = result.get(entity.get${method.mapK}());
- #if>
- if(vSet == null){
- vSet = new HashSet();
- result.put(entity.get${method.mapK}(),vSet);
- }
- <#if method.mapV??>
- vSet.add(entity.get${method.mapV}());
- <#else >
- vSet.add(entity);
- #if>
- }
- }
- return result;
- <#else>
- return ${dao.doMapper.className?uncap_first}.${method.name}(<#list method.params as param><#if param_index gt 0>, #if>${param.param}#list>);
- #if>
- }
- #list>
-}
-#list>
diff --git a/dalgen/template/dalgen/DBPreCheckMapper.java.ftl b/dalgen/template/dalgen/DBPreCheckMapper.java.ftl
deleted file mode 100644
index c764365ef6d45f6fbb2cd59cc2f4888b05440b24..0000000000000000000000000000000000000000
--- a/dalgen/template/dalgen/DBPreCheckMapper.java.ftl
+++ /dev/null
@@ -1,17 +0,0 @@
-<@pp.dropOutputFile />
-<#if dalgen.doMappers?size gt 0>
-<#assign tmpTables = dalgen.tmpTables>
-<#assign doMapper = dalgen.doMappers?first>
-<#assign dbName=""/>
-<#if !dalgen.getDataSourceSingle()><#assign dbName=dalgen.getDataSourceName()/>#if>
-<@pp.changeOutputFile name = "/main/java/${doMapper.classPath}/${dbName}DBPreCheckMapper.java" />
-package ${doMapper.packageName};
-import java.util.List;
-/**
- * 数据库字段检查
- */
-public interface ${dbName}DBPreCheckMapper{
-
- List dbColumnCheck();
-}
-#if>
diff --git a/dalgen/template/dalgen/DBPreCheckMapper.xml.ftl b/dalgen/template/dalgen/DBPreCheckMapper.xml.ftl
deleted file mode 100644
index 8c66cfbefbcce2f46caaed9ec6f9d0b784047135..0000000000000000000000000000000000000000
--- a/dalgen/template/dalgen/DBPreCheckMapper.xml.ftl
+++ /dev/null
@@ -1,34 +0,0 @@
-<@pp.dropOutputFile />
-<#if dalgen.xmlMappers?size gt 0>
-<#assign tmpTables = dalgen.tmpTables>
-<#assign xmlMapper = dalgen.xmlMappers?first>
-<#assign dbName=""/>
-<#if !dalgen.getDataSourceSingle()><#assign dbName=dalgen.getDataSourceName()/>#if>
-<@pp.changeOutputFile name = "/main/resources/${xmlMapper.doMapper.xmlPath}/${dbName}DBPreCheckMapper.xml" />
-
-
-
-<#assign idx = 0>
-
-
-#if>
diff --git a/dalgen/template/dalgen/DO.java.ftl b/dalgen/template/dalgen/DO.java.ftl
deleted file mode 100644
index 640ca2eddf64fc6086caccfc82d25eb278d5ead3..0000000000000000000000000000000000000000
--- a/dalgen/template/dalgen/DO.java.ftl
+++ /dev/null
@@ -1,42 +0,0 @@
-<@pp.dropOutputFile />
-<#list dalgen.dos as DO>
-<@pp.changeOutputFile name = "/main/java/${DO.classPath}/${DO.className}.java" />
-package ${DO.packageName};
-
-<#list DO.importLists as import>
-<#if !import?ends_with("${DO.className}")>
-import ${import};
-#if>
-#list>
-
-/**
- * The table ${DO.desc}
- */
-public class ${DO.className}{
-
- <#list DO.fieldses as fields>
- /**
- * ${fields.name} ${fields.desc}.
- */
- private ${fields.javaType} ${fields.name};
- #list>
- <#list DO.fieldses as fields>
-
- /**
- * Set ${fields.name} ${fields.desc}.
- */
- public void set${fields.name?cap_first}(${fields.javaType} ${fields.name}){
- this.${fields.name} = ${fields.name};
- }
-
- /**
- * Get ${fields.name} ${fields.desc}.
- *
- * @return the string
- */
- public ${fields.javaType} get${fields.name?cap_first}(){
- return ${fields.name};
- }
- #list>
-}
-#list>
diff --git a/dalgen/template/dalgen/DOMapper.java.ftl b/dalgen/template/dalgen/DOMapper.java.ftl
deleted file mode 100644
index 48ecfb58fd5285c656eff4a6edd45895cf89802e..0000000000000000000000000000000000000000
--- a/dalgen/template/dalgen/DOMapper.java.ftl
+++ /dev/null
@@ -1,30 +0,0 @@
-<@pp.dropOutputFile />
-<#list dalgen.doMappers as doMapper>
-<@pp.changeOutputFile name = "/main/java/${doMapper.classPath}/${doMapper.className}.java" />
-package ${doMapper.packageName};
-
-<#list doMapper.importLists as import>
-import ${import};
-#list>
-import org.apache.ibatis.annotations.Param;
-
-/**
- * 由于需要对分页支持,请直接使用对应的DAO类
- * The Table ${doMapper.tableName!}.
- * ${doMapper.desc!}
- */
-public interface ${doMapper.className}{
-
- <#list doMapper.motheds as method>
- /**
- * desc:${method.desc!method.name!}.
- * descSql = ${method.sql!}
- <#list method.params as param>
- * @param ${param.param} ${param.param}
- #list>
- * @return ${method.returnClass!}
- */
- ${method.returnClass!} ${method.name}(<#list method.params as param><#if param_index gt 0>,#if><#if method.params?size == 1 && param.paramType == "String">@Param("${param.param}")#if><#if method.params?size gt 1>@Param("${param.param}")#if>${param.paramType!} ${param.param}#list>);
- #list>
-}
-#list>
diff --git a/dalgen/template/dalgen/Page.java.ftl b/dalgen/template/dalgen/Page.java.ftl
deleted file mode 100644
index 06a44e23bac66a0b85625685d43ae5ae11de7008..0000000000000000000000000000000000000000
--- a/dalgen/template/dalgen/Page.java.ftl
+++ /dev/null
@@ -1,40 +0,0 @@
-<@pp.dropOutputFile />
-<#list dalgen.pagings as paging>
- <@pp.changeOutputFile name = "/main/java/${paging.classPath}/${paging.className}.java" />
-package ${paging.packageName};
-
-<#list paging.importLists as import>
-import ${import};
-#list>
-
-/**
- * The table ${paging.desc!}
- */
-public class ${paging.className} extends BasePage<${paging.resultType}>{
-
- <#list paging.fieldses as fields>
- /**
- * ${fields.name} ${fields.desc!}.
- */
- private ${fields.javaType} ${fields.name};
- #list>
- <#list paging.fieldses as fields>
-
- /**
- * Set ${fields.name} ${fields.desc!}.
- */
- public void set${fields.name?cap_first}(${fields.javaType} ${fields.name}){
- this.${fields.name} = ${fields.name};
- }
-
- /**
- * Get ${fields.name} ${fields.desc!}.
- *
- * @return the string
- */
- public ${fields.javaType} get${fields.name?cap_first}(){
- return ${fields.name};
- }
- #list>
-}
-#list>
diff --git a/dalgen/template/dalgen/ResultMap.java.ftl b/dalgen/template/dalgen/ResultMap.java.ftl
deleted file mode 100644
index d9e9ec1b85b2fcd80e77634f43fb5fbde6a851d3..0000000000000000000000000000000000000000
--- a/dalgen/template/dalgen/ResultMap.java.ftl
+++ /dev/null
@@ -1,114 +0,0 @@
-<@pp.dropOutputFile />
-<#import "../lib/lib.ftl" as lib/>
-<#list dalgen.resultMaps as resultMap>
- <@pp.changeOutputFile name = "/main/java/${resultMap.classPath}/${resultMap.className}.java" />
-package ${resultMap.packageName};
-
-import java.io.Serializable;
-<#list resultMap.importLists as import>
-import ${import};
-#list>
-<@lib.importByResultMap daos=dalgen.daos resultMap=resultMap/>
-<#assign extend = "">
- <#list dalgen.dos as DO>
- <#if DO.tableName == resultMap.tableName?upper_case && resultMap.extend == "base">
- <#assign extend = "extends "+DO.className>
-import ${DO.packageName}.${DO.className};
- #if>
- #list>
-
-
-/**
- * The table ${resultMap.desc!resultMap.className}
- */
-public class ${resultMap.className} ${extend} implements Serializable {
-
-private static final long serialVersionUID = -1L;
-
- <#--属性-->
- <#list resultMap.fieldses as fields>
- /**
- * ${fields.name} ${fields.desc!}.
- */
- private ${fields.javaType} ${fields.name};
- #list>
-
- <#--一对一-->
- <#list resultMap.associations as association>
- <#assign method = lib.getMethodByMethodName(dalgen.daos,association.tableName?upper_case,association.methodName)>
- /**
- * ${association.select} ${association.remark!}.
- */
- private ${method.returnClass!} ${association.property};
- #list>
-
- <#--一对多-->
- <#list resultMap.collections as collection>
- <#assign method = lib.getMethodByMethodName(dalgen.daos,collection.tableName?upper_case,collection.methodName)>
- /**
- * ${collection.select} ${collection.remark!}.
- */
- private ${method.returnClass!} ${collection.property};
- #list>
-
- <#list resultMap.fieldses as fields>
-
- /**
- * Set ${fields.name} ${fields.desc!}.
- */
- public void set${fields.name?cap_first}(${fields.javaType} ${fields.name}){
- this.${fields.name} = ${fields.name};
- }
-
- /**
- * Get ${fields.name} ${fields.desc!}.
- *
- * @return the string
- */
- public ${fields.javaType} get${fields.name?cap_first}(){
- return ${fields.name};
- }
- #list>
-
-
-<#--一对一-->
- <#list resultMap.associations as association>
- <#assign method = lib.getMethodByMethodName(dalgen.daos,association.tableName?upper_case,association.methodName)>
- /**
- * Set ${association.property}.${association.remark!}.
- */
- public void set${association.property?cap_first}(${method.returnClass!} ${association.property}){
- this.${association.property} = ${association.property};
- }
-
- /**
- * Get ${association.property} ${association.remark!}.
- *
- * @return the ${method.returnClass}
- */
- public ${method.returnClass} get${association.property?cap_first}(){
- return ${association.property};
- }
- #list>
-
-<#--一对多-->
- <#list resultMap.collections as collection>
- <#assign method = lib.getMethodByMethodName(dalgen.daos,collection.tableName?upper_case,collection.methodName)>
- /**
- * Set ${collection.property}.${collection.remark!}.
- */
- public void set${collection.property?cap_first}(${method.returnClass!} ${collection.property}){
- this.${collection.property} = ${collection.property};
- }
-
- /**
- * Get ${collection.property} ${collection.remark!}.
- *
- * @return the ${method.returnClass}
- */
- public ${method.returnClass} get${collection.property?cap_first}(){
- return ${collection.property};
- }
- #list>
-}
-#list>
diff --git a/dalgen/template/dalgen/XMLMapper.xml.ftl b/dalgen/template/dalgen/XMLMapper.xml.ftl
deleted file mode 100644
index 1ed0432bfa3f1e4b21d3a7541d3b3decca3b4075..0000000000000000000000000000000000000000
--- a/dalgen/template/dalgen/XMLMapper.xml.ftl
+++ /dev/null
@@ -1,82 +0,0 @@
-<@pp.dropOutputFile />
-<#import "../lib/lib.ftl" as lib/>
-<#import "../lib/function.ftl" as fun/>
-<#list dalgen.xmlMappers as xmlMapper>
-<@pp.changeOutputFile name = "/main/resources/${xmlMapper.doMapper.xmlPath}/${xmlMapper.doMapper.className}.xml" />
-
-
-
-
- <#-- 自定义分页时参数 limit {pageLimit}-->
- <#--生成BaseResultMap-->
-
-<#list xmlMapper.table.columnList as column>
- <#if column.sqlName?upper_case =="ID"><#else>#if>
-#list>
-
-
- <#--生成自定义ResultMap-->
-<#list xmlMapper.resultMaps as resultMap>
- <#assign extends = "">
- <#if resultMap.extend == "base">
- <#assign extends = "extends=\"BaseResultMap\"">
- #if>
-
- <#list resultMap.columnList as column>
- <#if column.sqlName?upper_case =="ID"><#else>#if>
- #list>
- <#list resultMap.associations as association>
-
- #list>
- <#list resultMap.collections as collection>
-
- #list>
-
-#list>
-
- <#if xmlMapper.sqlMap?size == 0 >
- <#-- baseSql -->
-
- <#list xmlMapper.table.columnList as column><#if column_index gt 0>,#if>${column.sqlName}#list>
-
-
- <#-- baseSql -->
-
- <#list xmlMapper.table.columnList as column><#if column_index gt 0>,#if>sf.${column.sqlName}#list>
-
- <#else><#list xmlMapper.sqlMap?values as sqlXML>
- ${sqlXML}
- #list>
- #if>
-
- <#-- sql部分 -->
- <#list xmlMapper.cfTable.operations as operation>
-
-<#if operation.multiplicity.code=="paging"><#--分页-->
- <#if operation.pagingCntType.code=="pagingCustom"><#--分页-->
-
- <${lib.operation2Sql(operation.name)} id="${operation.name}Result" ${lib.mapperResult(operation)}${lib.timeout(operation)}>
- ${operation.cdata!}
- ${lib.operation2Sql(operation.name)}>
- <#else>
-
- <${lib.operation2Sql(operation.name)} id="${operation.name}Count" resultType="int"${lib.timeout(operation)}>
-${operation.cdataPageCount!}
- ${lib.operation2Sql(operation.name)}>
-
- <${lib.operation2Sql(operation.name)} id="${operation.name}Result" ${lib.mapperResult(operation)}${lib.timeout(operation)}>
-${operation.cdata!}
- <#if operation.pagingCntType.code=="paging" || operation.pagingCntType.code=="pagingExtCnt">
- limit ${"#"}{startRow},${"#"}{limit}
- #if>
- ${lib.operation2Sql(operation.name)}>
- #if>
- <#else><#--非分页-->
-
- <${lib.operation2Sql(operation.name)} id="${operation.name}" ${lib.mapperResult(operation)}${lib.timeout(operation)} <#if operation.useGeneratedKeys??>useGeneratedKeys="${operation.useGeneratedKeys}"<#if operation.keyProperty??> keyProperty="${operation.keyProperty}"#if>#if>>
-${operation.cdata!}
- ${lib.operation2Sql(operation.name)}>
-#if>
- #list>
-
-#list>
diff --git a/dalgen/template/init/initTableXml.ftl b/dalgen/template/init/initTableXml.ftl
deleted file mode 100644
index 9362acdceb3711a3f5cc68a00ed8a3be8ae1d0a6..0000000000000000000000000000000000000000
--- a/dalgen/template/init/initTableXml.ftl
+++ /dev/null
@@ -1,156 +0,0 @@
-<@pp.dropOutputFile />
-<#import "../lib/lib.ftl" as lib/>
-<#list dalgen.tables as table>
-<@pp.changeOutputFile name = "/${dalgen.tablesPath}/${table.sqlName}.xml" />
-
- remark="${table.remark!}"#if>>
-
-
-
- <#list table.columnList as column><#if column_index gt 0><#if column_index%5==0>${" \n"} #if>,#if>${column.sqlName}#list>
-
-
-
-
- <#list table.columnList as column><#if column_index gt 0><#if column_index%5==0>${"\n"} #if>,#if>sf.${column.sqlName}#list>
-
-
-
- <#if dalgen.dbType=="MySQL">
-
- SELECT
- LAST_INSERT_ID()
-
- <#elseif dalgen.dbType=="Oracle">
-
- select seq_${table.sqlName?lower_case}.nextval from dual
-
- #if>
-
- <#if column_index gt 0>,#if>${column.sqlName}
- #list>
- )VALUES(
- <#list table.columnList as column>
- <#if column_index gt 0>,#if> ${lib.insertVal(column,dalgen)}
- #list>
- )
- ]]>
-
-
-
-
-
- INSERT INTO ${table.sqlName?lower_case}(
- <#list table.columnList as column>
- <#if column_index gt 0>,#if>${column.sqlName}
- #list>
- )VALUES
-
- (
- <#list table.columnList as column>
- <#if column_index gt 0>,#if> ${lib.insertBatchVal(column,dalgen)}
- #list>
- )
-
-
-
-<#if table.primaryKeys??>
-
-
-
- DELETE FROM ${table.sqlName?lower_case}
- WHERE
- <#list table.primaryKeys.columnList as column>
- <#if column_index gt 0>AND #if>${column.sqlName} = ${"#"}{${column.javaName},jdbcType=${column.sqlType}}
- #list>
- ]]>
-
-
-
- SELECT *
- FROM ${table.sqlName?lower_case}
- WHERE
-
- <#if column_index gt 0>AND #if>${column.sqlName} = ${"#"}{${column.javaName},jdbcType=${column.sqlType}}
- #list>
- ]]>
-
-#if>
-<#list table.uniqueIndexs as uniqueIndex>
-
-
-
-
- <#list table.columnList as column>
- <#if lib.updateIncludeUKColumn(dalgen,column,table.primaryKeys!,uniqueIndex.columnList)><#assign c_idx = c_idx+1>
- <#if c_idx gt 1>,#if>${column.sqlName}${lib.space(column.sqlName)} = ${lib.updateVal(column)}
- #if>
- #list>
- WHERE
- <#list uniqueIndex.columnList as column>
- <#if column_index gt 0>AND #if>${column.sqlName}${lib.space(column.sqlName)} = ${"#"}{${column.javaName},jdbcType=${column.sqlType}}
- #list>
- ]]>
-
-
-
-
- <#if column_index gt 0>AND #if>${column.sqlName}${lib.space(column.sqlName)} = ${"#"}{${column.javaName},jdbcType=${column.sqlType}}
- #list>
- ]]>
-
-
-
- SELECT *
- FROM ${table.sqlName?lower_case}
- WHERE
-
- <#if column_index gt 0>AND #if>${column.sqlName}${lib.space(column.sqlName)} = ${"#"}{${column.javaName},jdbcType=${column.sqlType}}
- #list>
- ]]>
-
-#list>
-
-<#list table.normalIndexs as normalIndex>
-
-
- SELECT *
- FROM ${table.sqlName?lower_case}
- WHERE
-
- <#if column_index gt 0>AND #if>${column.sqlName}${lib.space(column.sqlName)} = ${"#"}{${column.javaName},jdbcType=${column.sqlType}}
- #list>
- ]]>
-
-#list>
-
-#list>
diff --git a/dalgen/template/lib/function.ftl b/dalgen/template/lib/function.ftl
deleted file mode 100644
index fa7a0c34849621d769d0d59b1135bac99efb3400..0000000000000000000000000000000000000000
--- a/dalgen/template/lib/function.ftl
+++ /dev/null
@@ -1,113 +0,0 @@
-<#--获取字段list-->
-<#function columnList xmlMappers tableName>
- <#list xmlMappers as xmlMapper>
- <#if xmlMapper.table.sqlName == tableName>
- <#return xmlMapper.table.columnList/>
- #if>
- #list>
-#function>
-
-<#-- 字段默认值 -->
-<#function columnVal column>
- <#if column.testVal??><#return column.testVal>#if>
- <#if column.javaName == "id"><#return "1">#if>
- <#if column.javaName == "isDel"><#return "0">#if>
- <#if column.javaType == "java.util.Date"><#return "1984-12-24">#if>
- <#if column.javaType == "String"><#return column.javaName?substring(0,1)?cap_first>#if>
- <#return "1">
-#function>
-
-<#-- test默认值 -->
-<#function paramVal param columnList>
- <#list columnList as column>
- <#if column.javaName == param.param || "old${column.javaName?cap_first}" == param.param>
- <#if column.javaType == "java.util.Date"><#return "new Date()">#if>
- <#assign columnVal = "0">
-
- <#if column.javaName == "id"><#assign columnVal = "1">#if>
- <#if column.javaName == "isDel"><#assign columnVal = "0">#if>
- <#if column.javaType == "String"><#assign columnVal = column.javaName?substring(0,1)?cap_first>#if>
-
- <#if column.javaType == "Long"><#return "${columnVal}L">#if>
- <#if column.javaType == "String"><#return "\"${columnVal}\"">#if>
-
- <#if column.testVal??>
- <#if param.paramType?ends_with("Enum")>
- <#return "${param.paramType}.${column.testVal}"/>
- #if>
- <#return "TestParamValUtil.trans(${param.paramType}.class,\"${column.testVal}\")"/>
- #if>
- <#return columnVal>
- #if>
- #list>
-
- <#if param.paramType?ends_with("Enum") && param.testVal??>
- <#return "${param.paramType}.${param.testVal}"/>
- #if>
-
- <#if param.paramType == "String"><#return "\"${param.param}\"">#if>
- <#if param.paramType == "Long"><#return "1L">#if>
- <#if param.paramType == "Integer"><#return "1">#if>
- <#if param.paramType?starts_with("List")><#return "Lists.newArrayList(\"S\")">#if>
- <#if param.paramType?starts_with("List")><#return "Lists.newArrayList(1L)">#if>
- <#if param.paramType?starts_with("List")><#return "Lists.newArrayList(1)">#if>
- <#if param.paramType?starts_with("List")><#return "Lists.newArrayList(1d)">#if>
- <#if param.paramType?starts_with("List")><#return "Lists.newArrayList()">#if>
- <#return "new ${param.paramType}()">
-#function>
-
-<#-- 忽略不需要单元测试的类 -->
-<#function neadTest methodName>
- <#assign ignoreMethods = ["insert","insertBatch","update", "getById"]>
- <#if ignoreMethods?seq_contains(methodName)><#return false>#if>
- <#if methodName != "insert" && methodName?starts_with("insert")><#return false>#if>
-<#return true>
-#function>
-
-<#function getByIdMethod motheds>
- <#list motheds as method>
- <#if method.name == "getById"><#return method>#if>
- #list>
-#function>
-
-<#function fanType2Type fanType>
- <#if fanType??>
- <#return fanType?substring(fanType?last_index_of("<")+1,fanType?last_index_of(">"))>
- <#else >
- <#return fanType>
- #if>
-#function>
-
-<#function methodClass method>
- <#if method.kvMap?? && method.kvMap == "true">
- <#if method.mapVType??>
- <#assign valType = method.mapVType>
- <#else >
- <#assign valType = fanType2Type(method.returnClass)>
- #if>
- <#return "Map<${method.mapKType},${valType}>">
- <#elseif method.kvMap?? && method.kvMap == "list">
- <#if method.mapVType??>
- <#assign valType = method.mapVType>
- <#else >
- <#assign valType = fanType2Type(method.returnClass)>
- #if>
- <#return "Map<${method.mapKType},List<${valType}>>">
- <#elseif method.kvMap?? && method.kvMap == "set">
- <#if method.mapVType??>
- <#assign valType = method.mapVType>
- <#else >
- <#assign valType = fanType2Type(method.returnClass)>
- #if>
- <#return "Map<${method.mapKType},Set<${valType}>>">
- <#else>
- <#return method.returnClass>
- #if>
-#function>
-
-<#function javaTypeTrun javaType>
- <#if javaType?contains("<")>
- <#return javaType?substring(0,javaType?index_of("<"))/>
- #if>
- <#return javaType/>
-#function>
diff --git a/dalgen/template/lib/lib.ftl b/dalgen/template/lib/lib.ftl
deleted file mode 100644
index 6f1a592f0c250950b0a15c2ea48ad559f636aa9c..0000000000000000000000000000000000000000
--- a/dalgen/template/lib/lib.ftl
+++ /dev/null
@@ -1,147 +0,0 @@
-<#--空格处理-->
-<#function space param>
- <#if param?length gt 15><#return ""/>
- <#else>
- <#return " "?substring(param?length)/>
- #if>
-#function>
-
-<#-- operation 2 sql -->
-<#function operation2Sql param>
- <#if param?starts_with("insert")><#return "insert"/>#if>
- <#if param?starts_with("update")><#return "update"/>#if>
- <#if param?starts_with("delete")><#return "delete"/>#if>
- <#return "select"/>
-#function>
-
-<#-- mapperxml result -->
-<#function mapperResult operation>
- <#if operation.resultmap??><#return 'resultMap="${operation.resultmap}"'/>#if>
- <#if operation.resulttype??><#return 'resultType="${operation.resulttype}"'/>#if>
- <#if operation.name?starts_with("insert")><#return ''/>#if>
- <#if operation.name?starts_with("update")><#return ''/>#if>
- <#if operation.name?starts_with("delete")><#return ''/>#if>
- <#return 'resultMap="BaseResultMap"'/>
-#function>
-
-<#function timeout operation>
- <#if operation.timeout??><#return ' timeout="${operation.timeout}"'/>#if>
- <#return ""/>
-#function>
-
-<#-- insert 时字段处理 -->
-<#function insertVal column dalgen>
- <#if column.sqlName == "GMT_MODIFIED" || column.sqlName == "GMT_CREATE"><#return "now()">#if>
- <#if column.sqlName?upper_case == "ID"><#return "null">#if>
- <#return '${"#"}{${column.javaName},jdbcType=${column.sqlType}}'/>
-#function>
-
-<#-- insert 时字段处理 -->
-<#function insertBatchVal column dalgen>
- <#if column.sqlName == "GMT_MODIFIED" || column.sqlName == "GMT_CREATE"><#return "now()">#if>
- <#if column.sqlName?upper_case == "ID"><#return "null">#if>
- <#return '${"#"}{item.${column.javaName},jdbcType=${column.sqlType}}'/>
-#function>
-
-<#-- Update 时字段处理 -->
-<#function updateVal column>
- <#if column.sqlName == "GMT_MODIFIED" || column.sqlName == "GMT_CREATE"><#return "now()">#if>
- <#return '${"#"}{${column.javaName},jdbcType=${column.sqlType}}'/>
-#function>
-
-<#-- update 中需要设置的字段 -->
-<#function updateIncludeColumn dalgen column primaryKeys>
- <#if column.sqlName == "CREATOR" || column.sqlName == "GMT_CREATE">
- <#return false>
- #if>
- <#list primaryKeys as pkcolumn>
- <#if pkcolumn.sqlName == column.sqlName><#return false>#if>
- #list>
- <#return true>
-#function>
-
-<#-- update 中需要设置的字段 -->
-<#function updateIncludeUKColumn dalgen column primaryKeys uniqueColums>
- <#if column.sqlName == "CREATOR" || column.sqlName == "GMT_CREATE">
- <#return false>
- #if>
- <#if primaryKeys?? && primaryKeys.columnList??>
- <#list primaryKeys.columnList as pkcolumn>
- <#if pkcolumn.sqlName == column.sqlName><#return false>#if>
- #list>
- #if>
- <#list uniqueColums as pkcolumn>
- <#if pkcolumn.sqlName == column.sqlName><#return false>#if>
- #list>
- <#return true>
-#function>
-
-<#function getMethodByMethodName daos tableName methodName>
- <#list daos as dao>
- <#if dao.tableName == tableName>
- <#list dao.motheds as method>
- <#if method.name == methodName>
- <#return method>
- #if>
- #list>
- #if>
- #list>
-#function>
-
-<#macro importByResultMap daos resultMap>
-<#assign imports = []>
- <#list daos as dao>
- <#list resultMap.associations as association>
- <#if dao.tableName == association.tableName>
- <#list dao.motheds as method>
- <#if method.name == association.methodName>
- <#list dao.importLists as import>
- <#if import?ends_with(method.returnClass)>
- <#if !imports?seq_contains(import)>
- <#assign imports = imports+[import]>
- #if>
- #if>
- #list>
- #if>
- #list>
- #if>
- #list>
- <#list resultMap.collections as collection>
- <#if dao.tableName == collection.tableName>
- <#list dao.motheds as method>
- <#if method.name == collection.methodName>
- <#list dao.importLists as import>
- <#if isClasz(import,method.returnClass)>
- <#if !imports?seq_contains(import)>
- <#assign imports = imports+[import]>
- #if>
- <#if !imports?seq_contains("java.util.List")>
- <#assign imports = imports+["java.util.List"]>
- #if>
- #if>
- #list>
- #if>
- #list>
- #if>
- #list>
- #list>
-<#list imports as import>
-import ${import};
-#list>
-#macro>
-
-<#function genDOMapperNameSpace doMappers tableName>
- <#list doMappers as doMapper>
- <#if doMapper.tableName == tableName>
- <#return doMapper.packageName+"."+doMapper.className>
- #if>
- #list>
-#function>
-
-<#function isClasz import listF>
- <#assign clazz = listF>
- <#if listF?contains("<") && import?ends_with(listF?substring(listF?index_of("<")+1,listF?index_of(">")))>
- <#return true>
- #if>
-<#return false>
-#function>
diff --git a/mybatis-maven-plugin.iml b/mybatis-maven-plugin.iml
index f26e155261905ab1ab579e07543f035583bd0d3c..21ad38d5ab16b32a95749ec25a212523669f6821 100644
--- a/mybatis-maven-plugin.iml
+++ b/mybatis-maven-plugin.iml
@@ -24,8 +24,7 @@
-
-
+
@@ -59,16 +58,17 @@
-
+
+
-
+
-
+
\ No newline at end of file
diff --git a/pom.abs.xml b/pom.abs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..49ae5ade398384f216dea3d70a20af98455204de
--- /dev/null
+++ b/pom.abs.xml
@@ -0,0 +1,232 @@
+
+
+
+ 4.0.0
+
+ cn.dalgen.plugins
+ mybatis-maven-plugin
+ maven-plugin
+
+ ${project.groupId}:${project.artifactId}
+ 1.2.5
+
+ https://gitee.com/bangis/mybatis.generator
+ mybatis generator mapper.xml mapper.java dao.java do.java paging map list
+ 2017
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 1.5.8.RELEASE
+
+
+
+
+
+ The Apache Software License, Version 2.0
+ http://www.apache.org/licenses/LICENSE-2.0.txt
+ repo
+
+
+
+ scm:git:git@gitee.com:bangis/mybatis.generator.git
+ scm:git:git@gitee.com:bangis/mybatis.generator.git
+ https://gitee.com/bangis/mybatis.generator.git
+ HEAD
+
+
+
+
+ bangis
+ bangis
+ bangis@163.com
+
+
+
+
+ GitHub Issues
+ https://gitee.com/bangis/mybatis.generator.git
+
+
+
+ central
+ central
+ http://dev.maven.abssqr.cn/repository/maven-releases/
+
+
+ snapshot
+ snapshot
+ http://dev.maven.abssqr.cn/repository/maven-snapshots
+
+
+
+ UTF-8
+ UTF-8
+
+
+
+
+ com.google.guava
+ guava
+ 18.0
+
+
+ org.apache.maven.plugin-tools
+ maven-plugin-annotations
+ 3.2
+ provided
+
+
+ org.jsoup
+ jsoup
+ 1.8.1
+
+
+ com.alibaba
+ fastjson
+ 1.2.38
+
+
+ commons-lang
+ commons-lang
+ 2.6
+
+
+ commons-beanutils
+ commons-beanutils
+ 1.9.2
+
+
+ org.apache.maven
+ maven-project
+ 3.0-alpha-2
+
+
+ org.apache.maven
+ maven-plugin-api
+ 3.1.0
+
+
+ org.apache.maven.plugin-testing
+ maven-plugin-testing-harness
+ 2.0-alpha-1
+ test
+
+
+ net.sourceforge.fmpp
+ fmpp
+ 0.9.15
+
+
+ mysql
+ mysql-connector-java
+ 5.1.33
+
+
+
+ org.mybatis
+ mybatis
+ 3.4.1
+
+
+ dom4j
+ dom4j
+ 1.6.1
+
+
+ org.mockito
+ mockito-all
+ 1.10.19
+ test
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ maven-antrun-plugin
+
+
+ compile
+
+ run
+
+
+
+
+
+
+
+
+
+
+
+ maven-source-plugin
+ 2.4
+
+
+ package
+
+ jar-no-fork
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 1.7
+ 1.7
+
+
+
+ org.apache.maven.plugins
+ maven-gpg-plugin
+ 1.6
+
+
+ sign-artifacts
+ verify
+
+ sign
+
+
+
+
+
+ cn.dalgen.plugins
+ mybatis-maven-plugin
+ 1.2.5
+
+ srcTmp
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.oss.xml b/pom.oss.xml
index d61c68b834434252b237a08037bbcfed4f982485..b264b36db43e9a0551bd0799ce83e55123496784 100644
--- a/pom.oss.xml
+++ b/pom.oss.xml
@@ -9,7 +9,7 @@
maven-plugin
${project.groupId}:${project.artifactId}
- 1.1.1
+ 1.2.4.0
https://gitee.com/bangis/mybatis.generator
mybatis generator mapper.xml mapper.java dao.java do.java paging map list
@@ -50,13 +50,11 @@
releases
- Nexus Release Repository
- https://oss.sonatype.org/service/local/staging/deploy/maven2
+ https://oss.sonatype.org/service/local/staging/deploy/maven2/
snapshots
- Nexus Snapshot Repository
- https://oss.sonatype.org/content/repositories/snapshots
+ https://oss.sonatype.org/content/repositories/snapshots/
@@ -70,11 +68,6 @@
guava
18.0
-
- org.apache.maven
- maven-plugin-api
- 2.0
-
org.apache.maven.plugin-tools
maven-plugin-annotations
@@ -109,7 +102,7 @@
org.apache.maven
maven-plugin-api
- 3.0-alpha-5
+ 3.1.0
org.apache.maven.plugin-testing
@@ -138,13 +131,6 @@
dom4j
1.6.1
-
-
- commons-lang
- commons-lang
- 2.6
-
-
org.mockito
mockito-all
@@ -155,6 +141,17 @@
+
+
+
+
+
+
+
+
+
+
+
maven-antrun-plugin
@@ -172,41 +169,27 @@
+
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.1
-
- UTF-8
- 1.7
- 1.7
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- 2.10
-
- false
-
- **/*Test.java
-
- -Xmx512m
-
-
-
- org.apache.maven.plugins
maven-source-plugin
+ 2.4
- attach-sources
+ package
- jar
+ jar-no-fork
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 1.7
+ 1.7
+
+
org.apache.maven.plugins
maven-gpg-plugin
@@ -224,20 +207,23 @@
cn.dalgen.plugins
mybatis-maven-plugin
- 1.1.1
+ 1.2.4.0
- out
-
+ srcTmp
+ false
+ dalgen/template
+
diff --git a/pom.xml b/pom.xml
index de05e1ca9c39c786f3305547ecffd2eb146ebadc..cfb6195c9299abddd0348fe0c8df5a7d41786cb8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,16 +9,17 @@
maven-plugin
${project.groupId}:${project.artifactId}
- 1.2.0
+ 1.2.6.2
https://gitee.com/bangis/mybatis.generator
mybatis generator mapper.xml mapper.java dao.java do.java paging map list
2017
- org.sonatype.oss
- oss-parent
- 7
+ org.springframework.boot
+ spring-boot-starter-parent
+ 1.5.8.RELEASE
+
@@ -49,12 +50,14 @@
- releases
- https://oss.sonatype.org/service/local/staging/deploy/maven2/
+ central
+ central
+ http://dev.maven.abssqr.cn/repository/maven-releases/
- snapshots
- https://oss.sonatype.org/content/repositories/snapshots/
+ snapshot
+ snapshot
+ http://dev.maven.abssqr.cn/repository/maven-snapshots
@@ -207,10 +210,9 @@
cn.dalgen.plugins
mybatis-maven-plugin
- 1.2.0
+ 1.2.6.1
srcTmp
- dalgen/template
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 90a6b172ca3936ff056ae96703e733b6cae6ec35..26d048808ec804b4eccc554457f40e9fe86b3970 100755
--- a/src/main/java/cn/dalgen/mybatis/gen/dataloaders/DalgenLoader.java
+++ b/src/main/java/cn/dalgen/mybatis/gen/dataloaders/DalgenLoader.java
@@ -425,6 +425,7 @@ public class DalgenLoader extends AbstractDalgenLoader {
getClassAndImport(dao, "java.util.ArrayList", operation.getName());
getClassAndImport(dao, "java.util.HashSet", operation.getName());
}
+ method.setOperationParams(operation.getOperationParams());
dao.addMothed(method);
}
@@ -571,7 +572,7 @@ public class DalgenLoader extends AbstractDalgenLoader {
} catch (Exception e) {
LOG.error("", e);
}
-
+ pagingResultMethod.setOperationParams(operation.getOperationParams());
doMapper.addMothed(pagingResultMethod);
}
@@ -609,6 +610,7 @@ public class DalgenLoader extends AbstractDalgenLoader {
getClassAndImport(doMapper, "java.util.Map", operation.getName());
getClassAndImport(doMapper, "java.util.List", operation.getName());
}
+ method.setOperationParams(operation.getOperationParams());
doMapper.addMothed(method);
}
diff --git a/src/main/java/cn/dalgen/mybatis/gen/enums/TypeMapEnum.java b/src/main/java/cn/dalgen/mybatis/gen/enums/TypeMapEnum.java
index ce5142494ecb3117549525e86f7f7be7195c44db..e1fccb75f7ea7633b95aa24ce795750807149856 100755
--- a/src/main/java/cn/dalgen/mybatis/gen/enums/TypeMapEnum.java
+++ b/src/main/java/cn/dalgen/mybatis/gen/enums/TypeMapEnum.java
@@ -9,6 +9,10 @@ import java.util.Map;
* Created by bangis.wangdf on 15/12/5. 字段映射枚举
*/
public enum TypeMapEnum {
+ /**
+ * Char type map enum.
+ */
+ BLOB("BLOB", "byte[]"), // CHAR String
/**
* Char type map enum.
*/
@@ -96,7 +100,7 @@ public enum TypeMapEnum {
*/
TIMESTAMP("TIMESTAMP", "java.sql.Timestamp"), // TIMESTAMP java.sql.Timestamp
- OTHER("other", "other");
+ OTHER("VARCHAR", "VARCHAR");
/**
* The Jdbc type.
@@ -146,7 +150,6 @@ public enum TypeMapEnum {
if (type != null) {
return type;
}
- System.out.println(jdbcType);
return OTHER;
}
diff --git a/src/main/java/cn/dalgen/mybatis/gen/model/config/CfOperation.java b/src/main/java/cn/dalgen/mybatis/gen/model/config/CfOperation.java
index 05e88d2678743990947fb5e3c407b915a3034e7b..c851447edfffe1e88bb951cb2af5beb93ec85d9c 100755
--- a/src/main/java/cn/dalgen/mybatis/gen/model/config/CfOperation.java
+++ b/src/main/java/cn/dalgen/mybatis/gen/model/config/CfOperation.java
@@ -94,7 +94,8 @@ public class CfOperation {
private String mapK;
private String mapV;
-
+ private Map operationParams = Maps.newHashMap();
+ private boolean autoGen = false;
/**
* Gets name.
*
@@ -425,4 +426,22 @@ public class CfOperation {
public void setKeyProperty(String keyProperty) {
this.keyProperty = keyProperty;
}
+
+ public Map getOperationParams() {
+ return operationParams;
+ }
+
+ public void addOperationParam(String paramName, String paramVal) {
+
+ this.operationParams.put(paramName, paramVal);
+
+ }
+
+ public boolean isAutoGen() {
+ return autoGen;
+ }
+
+ public void setAutoGen(boolean autoGen) {
+ this.autoGen = autoGen;
+ }
}
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 fee0639292291b0fab7a86e684c9f02d5c8b0994..ce89affbff7b536ecb2af90a4bab9359ebb4f21f 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
@@ -31,6 +31,7 @@ public class Base {
*/
private String tableName;
+
/**
* The Import lists.
*/
@@ -163,6 +164,7 @@ public class Base {
this.tableName = tableName;
}
+
/**
* Returns a string representation of the object. In general, the
* {@code toString} method returns a string that
diff --git a/src/main/java/cn/dalgen/mybatis/gen/model/java/domapper/DOMapperMethod.java b/src/main/java/cn/dalgen/mybatis/gen/model/java/domapper/DOMapperMethod.java
index 5f7b765daf80dec7a623cb5f9877e999287a2d0d..7ff667ad05e843edc7f58c34ec9ef24a09d3673f 100755
--- a/src/main/java/cn/dalgen/mybatis/gen/model/java/domapper/DOMapperMethod.java
+++ b/src/main/java/cn/dalgen/mybatis/gen/model/java/domapper/DOMapperMethod.java
@@ -1,12 +1,16 @@
package cn.dalgen.mybatis.gen.model.java.domapper;
import cn.dalgen.mybatis.gen.utils.CamelCaseUtils;
+import cn.dalgen.mybatis.gen.utils.ConfigUtil;
import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
import com.google.common.collect.Ordering;
import com.google.common.primitives.Ints;
import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.StringUtils;
import java.util.List;
+import java.util.Map;
/**
* Created by bangis.wangdf on 15/12/13. Desc
@@ -55,7 +59,8 @@ public class DOMapperMethod implements Cloneable {
/**
* The Params.
*/
- private List params = Lists.newLinkedList();
+ private List params = Lists.newLinkedList();
+ private Map operationParams = Maps.newHashMap();
/**
* Gets return class.
@@ -99,6 +104,9 @@ public class DOMapperMethod implements Cloneable {
* @return the params
*/
public List getParams() {
+ if (StringUtils.equals(ConfigUtil.getConfig().getExtParam("MethodParamSort"), "false")) {
+ return params;
+ }
//对params进行排序
Ordering byLengthOrdering = new Ordering() {
@Override
@@ -266,4 +274,12 @@ public class DOMapperMethod implements Cloneable {
public void setPagingCustomFlag(String pagingCustomFlag) {
this.pagingCustomFlag = pagingCustomFlag;
}
+
+ public String getOperationParam(String key) {
+ return operationParams.get(key);
+ }
+
+ public void setOperationParams(Map operationParams) {
+ this.operationParams = operationParams;
+ }
}
diff --git a/src/main/java/cn/dalgen/mybatis/gen/model/repository/CfTableRepository.java b/src/main/java/cn/dalgen/mybatis/gen/model/repository/CfTableRepository.java
index 815029fb5040d4370bca223c5da8e8e528eede4a..80f710f422ecb92d848269f3bf33d9ef958cd037 100755
--- a/src/main/java/cn/dalgen/mybatis/gen/model/repository/CfTableRepository.java
+++ b/src/main/java/cn/dalgen/mybatis/gen/model/repository/CfTableRepository.java
@@ -1,18 +1,11 @@
package cn.dalgen.mybatis.gen.model.repository;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import cn.dalgen.mybatis.gen.model.config.CfOperation;
-import cn.dalgen.mybatis.gen.model.config.CfTable;
-import cn.dalgen.mybatis.gen.utils.ConfigUtil;
-import com.google.common.collect.Lists;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.collections.MapUtils;
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.lang.Validate;
import cn.dalgen.mybatis.gen.enums.MultiplicityEnum;
import cn.dalgen.mybatis.gen.enums.PagingCntTypeEnum;
import cn.dalgen.mybatis.gen.enums.ParamTypeEnum;
@@ -20,12 +13,20 @@ import cn.dalgen.mybatis.gen.exception.DalgenException;
import cn.dalgen.mybatis.gen.model.config.CfAssociation;
import cn.dalgen.mybatis.gen.model.config.CfCollection;
import cn.dalgen.mybatis.gen.model.config.CfColumn;
+import cn.dalgen.mybatis.gen.model.config.CfOperation;
import cn.dalgen.mybatis.gen.model.config.CfResultMap;
+import cn.dalgen.mybatis.gen.model.config.CfTable;
import cn.dalgen.mybatis.gen.utils.CamelCaseUtils;
+import cn.dalgen.mybatis.gen.utils.SysUtil;
+import com.google.common.collect.Lists;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.Validate;
import org.dom4j.Attribute;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.tree.DefaultElement;
+import sun.security.provider.MD5;
/**
* SQL模板 文件解析
@@ -77,6 +78,8 @@ public class CfTableRepository {
private static final Pattern SELECT_FROM_PATTERN = Pattern
.compile("[s|S][e|E][l|L][e|E][c|C][t|T]\\s+[\\s\\S]*?\\s+[f|F][r|R][o|O][m|M]");
+ private static final Pattern MYCAT_HINT_PATTERN = Pattern.compile("(\\/\\*[\\*#!]mycat:.*?\\/)");
+
/**
* Gain cf table cf table.
*
@@ -174,6 +177,7 @@ public class CfTableRepository {
private void fillOperation(CfTable cfTable, DefaultElement table, Map cfSqlMap) {
List operations = table.elements("operation");
for (Element operation : operations) {
+ // System.out.println(SysUtil.EncoderByMd5(operation.asXML()));
CfOperation cfOperation = new CfOperation();
cfOperation.setRemark(attr(operation, "remark"));
@@ -185,7 +189,7 @@ public class CfTableRepository {
cfOperation.setUseGeneratedKeys(attr(operation, "useGeneratedKeys"));
cfOperation.setKeyProperty(attr(operation, "keyProperty"));
-
+ cfOperation.setAutoGen(attrBoolean(operation, "autoGen"));
if (cfOperation.getMultiplicity() == MultiplicityEnum.paging) {
Validate.notEmpty(cfOperation.getPaging(), "需要设置paging,用来生成分页类");
}
@@ -205,6 +209,11 @@ public class CfTableRepository {
"转KvMap要求返回结果必须是many");
Validate.isTrue(StringUtils.isNotBlank(cfOperation.getMapK()), "转KvMap要求必填mapK");
}
+ Iterator iterator = operation.attributeIterator();
+ while (iterator.hasNext()) {
+ Attribute attribute = iterator.next();
+ cfOperation.addOperationParam(attribute.getName(), attribute.getValue());
+ }
//sql内容
setCfOperationCdata(cfTable, operation, table, cfOperation, cfSqlMap);
@@ -249,6 +258,7 @@ public class CfTableRepository {
cdata = StringUtils.replace(cdata, "sF.*", "");
cdata = StringUtils.replace(cdata, "Sf.*", "");
+ cdata = StringUtils.replace(cdata, "\\\\*", "—-dotXStar--");
cdata = StringUtils.replace(cdata, ".*", "—-dotStar--");
cdata = StringUtils.replace(cdata, "/*", "--/Star--");
cdata = StringUtils.replace(cdata, "*/", "--Star/--");
@@ -263,6 +273,7 @@ public class CfTableRepository {
cdata = StringUtils.replace(cdata, "—-dotStar--", ".*");
cdata = StringUtils.replace(cdata, "--/Star--", "/*");
cdata = StringUtils.replace(cdata, "--Star/--", "*/");
+ cdata = StringUtils.replace(cdata, "—-dotXStar--", "*");
cdata = cdata.replaceAll("count\\(!!!COUNT!!!\\)", " count(*) ");
@@ -296,7 +307,7 @@ public class CfTableRepository {
dalExtraparams(extraparams, cfOperation);
//获取参数
- fillOperationParams(oElement, table, cfOperation, cfSqlMap);
+ fillOperationParams(oElement, table, cfOperation, cfSqlMap, cfTable);
}
private static final String REPLACE_TMP = " ( ⊙ o ⊙ ) ";
@@ -322,7 +333,7 @@ public class CfTableRepository {
}
cdataCount = forCount.replaceAll(ORDER_BY_PATTERN, REPLACE_TMP);
- int indexof = cdataCount.indexOf(REPLACE_TMP);
+ int indexof = cdataCount.lastIndexOf(REPLACE_TMP);
if (indexof > 0) {
cdataCount = cdataCount.substring(0, indexof).replaceAll(
"(?m)^\\s*$" + System.lineSeparator(), "");
@@ -339,7 +350,7 @@ public class CfTableRepository {
}
cdataCount = forCount.replaceAll(ORDER_BY_PATTERN, REPLACE_TMP);
- int indexof = cdataCount.indexOf(REPLACE_TMP);
+ int indexof = cdataCount.lastIndexOf(REPLACE_TMP);
if (indexof > 0) {
cdataCount = cdataCount.substring(0, indexof).replaceAll(
"(?m)^\\s*$" + System.lineSeparator(), "");
@@ -350,7 +361,7 @@ public class CfTableRepository {
} else if (cfOperation.getPagingCntType() == PagingCntTypeEnum.pagingExtCnt) {
cdataCount = forCount.replaceAll(ORDER_BY_PATTERN, REPLACE_TMP);
- int indexof = cdataCount.indexOf(REPLACE_TMP);
+ int indexof = cdataCount.lastIndexOf(REPLACE_TMP);
if (indexof > 0) {
cdataCount = cdataCount.substring(0, indexof).replaceAll(
"(?m)^\\s*$" + System.lineSeparator(), "");
@@ -462,38 +473,42 @@ public class CfTableRepository {
*/
private String addSqlAnnotation(String cdata, String oName, String tbName) {
+ Matcher matcher = MYCAT_HINT_PATTERN.matcher(cdata);
+ String myCatAnn = null;
+ String myCatAnnRpl = "&&@@MYCATHINT@@&&";
+ if (matcher.find()) {
+ myCatAnn = matcher.group(1);
+ cdata = matcher.replaceAll(myCatAnnRpl);
+ }
+
String sqlAnnotation = StringUtils.upperCase(CamelCaseUtils
.toInlineName(CamelCaseUtils.toCamelCase("ms_" + tbName + "_" + oName)));
if (StringUtils.startsWithIgnoreCase(oName, "insert ")
|| StringUtils.startsWithIgnoreCase(oName, "update")
|| StringUtils.startsWithIgnoreCase(oName, "delete")) {
if (StringUtils.contains(cdata, "update ")) {
- return StringUtils.replace(cdata, "update ", "update /*" + sqlAnnotation + "*/ ");
- }
- if (StringUtils.contains(cdata, "UPDATE ")) {
- return StringUtils.replace(cdata, "UPDATE ", "UPDATE /*" + sqlAnnotation + "*/ ");
- }
- if (StringUtils.contains(cdata, "insert ")) {
- return StringUtils.replace(cdata, "insert ", "insert /*" + sqlAnnotation + "*/ ");
- }
- if (StringUtils.contains(cdata, "INSERT ")) {
- return StringUtils.replace(cdata, "INSERT ", "INSERT /*" + sqlAnnotation + "*/ ");
- }
- if (StringUtils.contains(cdata, "delete ")) {
- return StringUtils.replace(cdata, "delete ", "delete /*" + sqlAnnotation + "*/ ");
- }
- if (StringUtils.contains(cdata, "DELETE ")) {
- return StringUtils.replace(cdata, "DELETE ", "DELETE /*" + sqlAnnotation + "*/ ");
+ cdata = StringUtils.replace(cdata, "update ", "update /*" + sqlAnnotation + "*/ ");
+ } else if (StringUtils.contains(cdata, "UPDATE ")) {
+ cdata = StringUtils.replace(cdata, "UPDATE ", "UPDATE /*" + sqlAnnotation + "*/ ");
+ } else if (StringUtils.contains(cdata, "insert ")) {
+ cdata = StringUtils.replace(cdata, "insert ", "insert /*" + sqlAnnotation + "*/ ");
+ } else if (StringUtils.contains(cdata, "INSERT ")) {
+ cdata = StringUtils.replace(cdata, "INSERT ", "INSERT /*" + sqlAnnotation + "*/ ");
+ } else if (StringUtils.contains(cdata, "delete ")) {
+ cdata = StringUtils.replace(cdata, "delete ", "delete /*" + sqlAnnotation + "*/ ");
+ } else if (StringUtils.contains(cdata, "DELETE ")) {
+ cdata = StringUtils.replace(cdata, "DELETE ", "DELETE /*" + sqlAnnotation + "*/ ");
}
} else {
if (StringUtils.contains(cdata, "select ")) {
- return StringUtils.replace(cdata, "select ", "select /*" + sqlAnnotation + "*/ ");
- }
- if (StringUtils.contains(cdata, "SELECT ")) {
- return StringUtils.replace(cdata, "SELECT", "SELECT /*" + sqlAnnotation + "*/ ");
+ cdata = StringUtils.replace(cdata, "select ", "select /*" + sqlAnnotation + "*/ ");
+ } else if (StringUtils.contains(cdata, "SELECT ")) {
+ cdata = StringUtils.replace(cdata, "SELECT", "SELECT /*" + sqlAnnotation + "*/ ");
}
}
-
+ if (StringUtils.isNotBlank(myCatAnn)) {
+ cdata = StringUtils.replace(cdata, myCatAnnRpl, myCatAnn);
+ }
return cdata;
}
@@ -504,7 +519,7 @@ public class CfTableRepository {
* @param cfOperation the cf operation
*/
private void fillOperationParams(Element e, DefaultElement table, CfOperation cfOperation,
- Map cfSqlMap) {
+ Map cfSqlMap, CfTable cfTable) {
if (cfOperation.getParamType() != ParamTypeEnum.primitive) {
return;
@@ -522,9 +537,9 @@ public class CfTableRepository {
includeElement = cfSqlMap.get(item.attributeValue("refid"));
}
Validate.notNull(includeElement, "include refid=" + item.attributeValue("refid") + " 对应的SQL 未配置");
- fillOperationParams(includeElement, table, cfOperation, cfSqlMap);
+ fillOperationParams(includeElement, table, cfOperation, cfSqlMap, cfTable);
} else if (CollectionUtils.isNotEmpty(ies)) {
- recursiveForeachElement(cfOperation, table, ies, cfSqlMap);
+ recursiveForeachElement(cfOperation, table, ies, cfSqlMap, cfTable);
} //找到List参数
else if (StringUtils.equalsIgnoreCase(item.getName(), "foreach")) {
String collName = item.attributeValue("collection");
@@ -547,6 +562,7 @@ public class CfTableRepository {
while (m.find()) {
params.add(m.group(1));
}
+
for (String _p : params) {
String p = _p.replaceAll(" ", "");
String attr = null;
@@ -561,12 +577,13 @@ public class CfTableRepository {
attr = StringUtils.trim(s);
}
}
+
cfOperation.addPrimitiveParam(attr, type);
}
}
private void recursiveForeachElement(CfOperation cfOperation, DefaultElement table, List ies,
- Map cfSqlMap) {
+ Map cfSqlMap, CfTable cfTable) {
for (Element ie : ies) {
if (StringUtils.endsWithIgnoreCase("include", ie.getName())) {
Element includeElement = elementById(table, ie.attributeValue("refid"));
@@ -574,7 +591,7 @@ public class CfTableRepository {
includeElement = cfSqlMap.get(ie.attributeValue("refid"));
}
Validate.notNull(includeElement, "include refid=" + ie.attributeValue("refid") + " 对应的SQL 未配置");
- fillOperationParams(includeElement, table, cfOperation, cfSqlMap);
+ fillOperationParams(includeElement, table, cfOperation, cfSqlMap, cfTable);
} else if (StringUtils.equalsIgnoreCase(ie.getName(), "foreach")) {
String collName = ie.attributeValue("collection");
String itemName = ie.attributeValue("item");
@@ -588,12 +605,12 @@ public class CfTableRepository {
cfOperation.addPrimitiveForeachParam(itemName, collName);
}
List _ies = ie.elements();
- if(CollectionUtils.isNotEmpty(_ies)){
- recursiveForeachElement(cfOperation, table, _ies, cfSqlMap);
+ if (CollectionUtils.isNotEmpty(_ies)) {
+ recursiveForeachElement(cfOperation, table, _ies, cfSqlMap, cfTable);
}
} else {
if ((CollectionUtils.isNotEmpty(ie.elements()))) {
- recursiveForeachElement(cfOperation, table, ie.elements(), cfSqlMap);
+ recursiveForeachElement(cfOperation, table, ie.elements(), cfSqlMap, cfTable);
}
}
}
diff --git a/src/main/java/cn/dalgen/mybatis/gen/utils/CmdUtil.java b/src/main/java/cn/dalgen/mybatis/gen/utils/CmdUtil.java
index 3b7872e6e181049193f0db1a87ec09f9dc241bd5..790affbf9b911ebb74270f1c00df726e713ded71 100755
--- a/src/main/java/cn/dalgen/mybatis/gen/utils/CmdUtil.java
+++ b/src/main/java/cn/dalgen/mybatis/gen/utils/CmdUtil.java
@@ -83,21 +83,21 @@ public class CmdUtil {
return _cmd;
}
- private void checkNewVersion() {
- try {
- String jsonBody = Jsoup.connect(mvn_version_url).timeout(500).ignoreContentType(true).execute().body();
- JSONObject jsonObject = JSON.parseObject(jsonBody);
- JSONArray jsonArray = jsonObject.getJSONObject("response").getJSONArray("docs");
- jsonObject = (JSONObject)jsonArray.get(0);
- String lastVersion = jsonObject.getString("latestVersion");
- if(!lastVersion.equals(CmdUtil.DALGEN_VERSION)){
- System.out.println("===========升级提醒==============");
- System.out.println("...... 建议升级至最新版本:" + lastVersion);
- }
-
- } catch (Exception e) {
- //e.printStackTrace();
- }
- }
+ //private void checkNewVersion() {
+ // try {
+ // String jsonBody = Jsoup.connect(mvn_version_url).timeout(500).ignoreContentType(true).execute().body();
+ // JSONObject jsonObject = JSON.parseObject(jsonBody);
+ // JSONArray jsonArray = jsonObject.getJSONObject("response").getJSONArray("docs");
+ // jsonObject = (JSONObject)jsonArray.get(0);
+ // String lastVersion = jsonObject.getString("latestVersion");
+ // if(!lastVersion.equals(CmdUtil.DALGEN_VERSION)){
+ // System.out.println("===========升级提醒==============");
+ // System.out.println("...... 建议升级至最新版本:" + lastVersion);
+ // }
+ //
+ // } catch (Exception e) {
+ // //e.printStackTrace();
+ // }
+ //}
}
diff --git a/src/main/java/cn/dalgen/mybatis/gen/utils/SysUtil.java b/src/main/java/cn/dalgen/mybatis/gen/utils/SysUtil.java
index 9d62fa23aee530d0ffa1c9a69fb0a915aa5adf71..87670902694c81265e7f5537c1bf0254a2ea1577 100644
--- a/src/main/java/cn/dalgen/mybatis/gen/utils/SysUtil.java
+++ b/src/main/java/cn/dalgen/mybatis/gen/utils/SysUtil.java
@@ -1,9 +1,13 @@
package cn.dalgen.mybatis.gen.utils;
+import java.io.UnsupportedEncodingException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
import java.util.List;
import cn.dalgen.mybatis.gen.enums.SystemEnum;
import org.apache.commons.lang.enums.EnumUtils;
+import sun.misc.BASE64Encoder;
/**
* 获取系统信息
@@ -23,4 +27,27 @@ public class SysUtil {
}
throw new RuntimeException("不支持的操作系统" + os);
}
+
+ /**利用MD5进行加密
+ * @param str 待加密的字符串
+ * @return 加密后的字符串
+ */
+ public static String EncoderByMd5(String str) {
+ //确定计算方法
+ MessageDigest md5= null;
+ try {
+ md5 = MessageDigest.getInstance("MD5");
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ }
+ BASE64Encoder base64en = new BASE64Encoder();
+ //加密后的字符串
+ String newstr= null;
+ try {
+ newstr = base64en.encode(md5.digest(str.getBytes("utf-8")));
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ return newstr;
+ }
}
diff --git a/src/main/resources/dalgen/config/config.xml b/src/main/resources/dalgen/config/config.xml
index 128f922fc439dd3a98afc487da586377e63f7463..ee85be4250edc77f4a5276a506d1bca67590ed0c 100755
--- a/src/main/resources/dalgen/config/config.xml
+++ b/src/main/resources/dalgen/config/config.xml
@@ -23,11 +23,11 @@
-
-
+
+
-
+
@@ -86,7 +86,9 @@
-
+
+
+
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 3591f224711d6ce0a4f5f4ca81f6737fa804cd9b..fe04c1d12272be2cd2a196cee0c46ff4f5376723 100755
--- a/src/main/resources/dalgen/config/table-config-1.0.dtd
+++ b/src/main/resources/dalgen/config/table-config-1.0.dtd
@@ -142,6 +142,7 @@
true 返回Map,?> 其中 ?分表对应 mapK,mapV类型
list 返回Map,List>> 其中 ?分表对应 mapK,mapV类型
set 返回Map,Set>> 其中 ?分表对应 mapK,mapV类型
+ autoGen insert insertBatch update 时生效
-->
diff --git a/src/main/resources/dalgen/configTables/CF_METADATA_ITEM.xml b/src/main/resources/dalgen/configTables/CF_METADATA_ITEM.xml
deleted file mode 100644
index cf7fec20a46f9964a1c41868267d8fc0006c3b70..0000000000000000000000000000000000000000
--- a/src/main/resources/dalgen/configTables/CF_METADATA_ITEM.xml
+++ /dev/null
@@ -1,165 +0,0 @@
-
-
-
-
-
-
- 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_ITEM(
- 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_ITEM
- WHERE
-
-
-
-
-
-
-
-
-
-
-
-
-
- SELECT *
- FROM CF_METADATA_ITEM
- WHERE
-
-
-
-
-
-
-
-
- select
- *
- from CF_METADATA_ITEM
- where
- sys = #{sys,jdbcType=VARCHAR}
- AND is_deleted = 'N'
-
- AND (
-
- M_CODE = #{param.mCode,jdbcType=VARCHAR}
-
-
- and JSON_EXTRACT(METADATA,'$.${key}') = #{value,jdbcType=VARCHAR}
-
-
-
- )
-
-
-
-
diff --git a/dalgen/dalgenTables/MY_DALGEN.xml b/src/main/resources/dalgen/configTables/COLL_GYS_STG_RESULT.xml
similarity index 33%
rename from dalgen/dalgenTables/MY_DALGEN.xml
rename to src/main/resources/dalgen/configTables/COLL_GYS_STG_RESULT.xml
index 03a01a18f5e7ac9dc1bac12f11901462428944a6..028cb2e519ae46cdf93afc7407bbf099d67edf88 100644
--- a/dalgen/dalgenTables/MY_DALGEN.xml
+++ b/src/main/resources/dalgen/configTables/COLL_GYS_STG_RESULT.xml
@@ -1,132 +1,139 @@
-
+
- ID,CODE,NAME
+ ID,ORG_CASE_ID,STG_RESULT,ACTIVE_SCORE,CASE_NO
+ ,ID_CARD,ORG_CODE,IMPORT_CODE,PERSON_NAME,GMT_CREATE
+ ,GMT_MODIFIED
- sf.ID,sf.CODE,sf.NAME
+ sf.ID,sf.ORG_CASE_ID,sf.STG_RESULT,sf.ACTIVE_SCORE,sf.CASE_NO
+ ,sf.ID_CARD,sf.ORG_CODE,sf.IMPORT_CODE,sf.PERSON_NAME,sf.GMT_CREATE
+ ,sf.GMT_MODIFIED
-
+
SELECT
LAST_INSERT_ID()
-
- INSERT INTO MY_DALGEN(
+
+ INSERT INTO coll_gys_stg_result(
ID
- ,CODE
- ,NAME
+ ,ORG_CASE_ID
+ ,STG_RESULT
+ ,ACTIVE_SCORE
+ ,CASE_NO
+ ,ID_CARD
+ ,ORG_CODE
+ ,IMPORT_CODE
+ ,PERSON_NAME
+ ,GMT_CREATE
+ ,GMT_MODIFIED
)VALUES
(
null
- , #{item.code,jdbcType=VARCHAR}
- , #{item.name,jdbcType=VARCHAR}
+ , #{item.orgCaseId,jdbcType=BIGINT}
+ , #{item.stgResult,jdbcType=OTHER}
+ , #{item.activeScore,jdbcType=DOUBLE}
+ , #{item.caseNo,jdbcType=VARCHAR}
+ , #{item.idCard,jdbcType=VARCHAR}
+ , #{item.orgCode,jdbcType=VARCHAR}
+ , #{item.importCode,jdbcType=VARCHAR}
+ , #{item.personName,jdbcType=VARCHAR}
+ , now()
+ , now()
)
-
+
-
+
SELECT *
- FROM MY_DALGEN
+ FROM coll_gys_stg_result
WHERE
-
-
-
- select *
- from
- my_dalgen
- where
- CODE = #{code,jdbcType=VARCHAR}
- AND NAME = #{name,jdbcType=VARCHAR}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- select *
- from
- my_dalgen
- where
- CODE = #{code,jdbcType=VARCHAR}
- AND NAME = #{name,jdbcType=VARCHAR}
- order by id desc
+
+
+ SELECT *
+ FROM coll_gys_stg_result
+ WHERE
+
-
-
-
-
-
- select *
- from(
-
- select id
- from
- my_dalgen
- where
- CODE = #{code,jdbcType=VARCHAR}
- AND NAME = #{name,jdbcType=VARCHAR}
- order by id desc
-
-
- ) l
- left
- join my_dalgen r
- on l.id = r.id
+
+
+ SELECT *
+ FROM coll_gys_stg_result
+ WHERE
+
diff --git a/src/main/resources/dalgen/templates/dalgen/DAO.java.ftl b/src/main/resources/dalgen/templates/dalgen/DAO.java.ftl
index 61b2a45052dcdb5282b44d835f50e46410ce0042..28bfc6a430db988e4dd6cf025603a81d6414f0d1 100644
--- a/src/main/resources/dalgen/templates/dalgen/DAO.java.ftl
+++ b/src/main/resources/dalgen/templates/dalgen/DAO.java.ftl
@@ -29,6 +29,9 @@ public class ${dao.className}{
* @return ${fun.methodClass(method)}
*/
public ${fun.methodClass(method)} ${method.name}(<#list method.params as param><#if param_index gt 0>,#if>${param.paramType!} <#assign pagingParam = param.param/>${param.param}#list>){
+ <#if !method.name?starts_with("insert")><#list method.params as param><#if param.paramType?starts_with("List<")>
+ if(${param.param}!=null && ${param.param}.size()>201){throw new RuntimeException("${param.param} 超出200长度限制");}
+ #if>#list>#if>
<#if method.pagingFlag == "true">
<#if method.pagingCustomFlag == "true">
int total = ${dao.doMapper.className?uncap_first}.${method.pagingCntOperation}(<#list method.params as param><#if param_index gt 0>, #if>${param.param}#list>);
diff --git a/src/main/resources/dalgen/templates/dalgen/DO.java.ftl b/src/main/resources/dalgen/templates/dalgen/DO.java.ftl
index 640ca2eddf64fc6086caccfc82d25eb278d5ead3..f9e08e9bed485580484c95f1e6c0c8d05c3490e7 100755
--- a/src/main/resources/dalgen/templates/dalgen/DO.java.ftl
+++ b/src/main/resources/dalgen/templates/dalgen/DO.java.ftl
@@ -1,5 +1,6 @@
<@pp.dropOutputFile />
<#list dalgen.dos as DO>
+<#if DO.fieldses?size gt 0>
<@pp.changeOutputFile name = "/main/java/${DO.classPath}/${DO.className}.java" />
package ${DO.packageName};
@@ -39,4 +40,5 @@ public class ${DO.className}{
}
#list>
}
+#if>
#list>
diff --git a/src/main/resources/dalgen/templates/dalgen/DOMapper.java.ftl b/src/main/resources/dalgen/templates/dalgen/DOMapper.java.ftl
index 48ecfb58fd5285c656eff4a6edd45895cf89802e..3172f78464c6b27b3a3a5b2cfb211576f8fe9700 100755
--- a/src/main/resources/dalgen/templates/dalgen/DOMapper.java.ftl
+++ b/src/main/resources/dalgen/templates/dalgen/DOMapper.java.ftl
@@ -18,7 +18,6 @@ public interface ${doMapper.className}{
<#list doMapper.motheds as method>
/**
* desc:${method.desc!method.name!}.
- * descSql = ${method.sql!}
<#list method.params as param>
* @param ${param.param} ${param.param}
#list>
diff --git a/src/main/resources/dalgen/templates/dalgen/XMLMapper.xml.ftl b/src/main/resources/dalgen/templates/dalgen/XMLMapper.xml.ftl
index 1ed0432bfa3f1e4b21d3a7541d3b3decca3b4075..4acdc18e54a3d7dd1abd24866ba5bd18ad62ebde 100755
--- a/src/main/resources/dalgen/templates/dalgen/XMLMapper.xml.ftl
+++ b/src/main/resources/dalgen/templates/dalgen/XMLMapper.xml.ftl
@@ -1,6 +1,7 @@
<@pp.dropOutputFile />
<#import "../lib/lib.ftl" as lib/>
<#import "../lib/function.ftl" as fun/>
+<#import "../lib/macro.ftl" as m>
<#list dalgen.xmlMappers as xmlMapper>
<@pp.changeOutputFile name = "/main/resources/${xmlMapper.doMapper.xmlPath}/${xmlMapper.doMapper.className}.xml" />
@@ -9,11 +10,13 @@
<#-- 自定义分页时参数 limit {pageLimit}-->
<#--生成BaseResultMap-->
+<#if xmlMapper.table.columnList?size gt 0>
<#list xmlMapper.table.columnList as column>
<#if column.sqlName?upper_case =="ID"><#else>#if>
#list>
+#if>
<#--生成自定义ResultMap-->
<#list xmlMapper.resultMaps as resultMap>
@@ -36,6 +39,7 @@
<#if xmlMapper.sqlMap?size == 0 >
<#-- baseSql -->
+<#if xmlMapper.table.columnList?size gt 0>
<#list xmlMapper.table.columnList as column><#if column_index gt 0>,#if>${column.sqlName}#list>
@@ -44,6 +48,7 @@
<#list xmlMapper.table.columnList as column><#if column_index gt 0>,#if>sf.${column.sqlName}#list>
+#if>
<#else><#list xmlMapper.sqlMap?values as sqlXML>
${sqlXML}
#list>
@@ -59,11 +64,11 @@
${operation.cdata!}
${lib.operation2Sql(operation.name)}>
<#else>
-
+
<${lib.operation2Sql(operation.name)} id="${operation.name}Count" resultType="int"${lib.timeout(operation)}>
${operation.cdataPageCount!}
${lib.operation2Sql(operation.name)}>
-
+
<${lib.operation2Sql(operation.name)} id="${operation.name}Result" ${lib.mapperResult(operation)}${lib.timeout(operation)}>
${operation.cdata!}
<#if operation.pagingCntType.code=="paging" || operation.pagingCntType.code=="pagingExtCnt">
@@ -72,9 +77,13 @@ ${operation.cdata!}
${lib.operation2Sql(operation.name)}>
#if>
<#else><#--非分页-->
-
+
<${lib.operation2Sql(operation.name)} id="${operation.name}" ${lib.mapperResult(operation)}${lib.timeout(operation)} <#if operation.useGeneratedKeys??>useGeneratedKeys="${operation.useGeneratedKeys}"<#if operation.keyProperty??> keyProperty="${operation.keyProperty}"#if>#if>>
+<#if operation.autoGen>
+<@m.autoGen operation.name ,xmlMapper.table/>
+<#else>
${operation.cdata!}
+#if>
${lib.operation2Sql(operation.name)}>
#if>
#list>
diff --git a/src/main/resources/dalgen/templates/init/initTableXml.ftl b/src/main/resources/dalgen/templates/init/initTableXml.ftl
index 9362acdceb3711a3f5cc68a00ed8a3be8ae1d0a6..9dba3241718c36387a653dae51b5354f56e72033 100644
--- a/src/main/resources/dalgen/templates/init/initTableXml.ftl
+++ b/src/main/resources/dalgen/templates/init/initTableXml.ftl
@@ -1,64 +1,30 @@
<@pp.dropOutputFile />
<#import "../lib/lib.ftl" as lib/>
+<#import "../lib/macro.ftl" as m>
<#list dalgen.tables as table>
<@pp.changeOutputFile name = "/${dalgen.tablesPath}/${table.sqlName}.xml" />
remark="${table.remark!}"#if>>
-
- <#list table.columnList as column><#if column_index gt 0><#if column_index%5==0>${" \n"} #if>,#if>${column.sqlName}#list>
-
+ <@m.BaseColumnList table/>
-
- <#list table.columnList as column><#if column_index gt 0><#if column_index%5==0>${"\n"} #if>,#if>sf.${column.sqlName}#list>
-
+ <@m.Base_SF_Column_List table/>
-
- <#if dalgen.dbType=="MySQL">
-
- SELECT
- LAST_INSERT_ID()
-
- <#elseif dalgen.dbType=="Oracle">
-
- select seq_${table.sqlName?lower_case}.nextval from dual
-
- #if>
-
- <#if column_index gt 0>,#if>${column.sqlName}
- #list>
- )VALUES(
- <#list table.columnList as column>
- <#if column_index gt 0>,#if> ${lib.insertVal(column,dalgen)}
- #list>
- )
- ]]>
+
+ <@m.insertMethod table/>
-
- INSERT INTO ${table.sqlName?lower_case}(
- <#list table.columnList as column>
- <#if column_index gt 0>,#if>${column.sqlName}
- #list>
- )VALUES
-
- (
- <#list table.columnList as column>
- <#if column_index gt 0>,#if> ${lib.insertBatchVal(column,dalgen)}
- #list>
- )
-
+
+ <@m.insertBatchMethod table/>
<#if table.primaryKeys??>