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> 其中 ?分表对应 mapK,mapV类型 set 返回Map> 其中 ?分表对应 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(); - } -} - 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}; - - -/** -* The Table ${dao.tableName!}. -* ${dao.desc!} -*/ -<#if dalgen.config.getExtParam("Repository") == "true">@Repository -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} - - * @return ${fun.methodClass(method)} - */ - public ${fun.methodClass(method)} ${method.name}(<#list method.params as param><#if param_index gt 0>,${param.paramType!} <#assign pagingParam = param.param/>${param.param}){ - <#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>, ${param.param}); - <#else > - int total = ${dao.doMapper.className?uncap_first}.${method.name}Count(<#list method.params as param><#if param_index gt 0>, ${param.param}); - - if(total>0){ - ${pagingParam}.setDatas(${dao.doMapper.className?uncap_first}.${method.name}Result(<#list method.params as param><#if param_index gt 0>, ${param.param})); - } - ${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>, ${param.param}); - 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); - - } - } - 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>, ${param.param}); - 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(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); - - } - } - 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>, ${param.param}); - 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(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); - - } - } - return result; - <#else> - return ${dao.doMapper.className?uncap_first}.${method.name}(<#list method.params as param><#if param_index gt 0>, ${param.param}); - - } - -} - 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()/> -<@pp.changeOutputFile name = "/main/java/${doMapper.classPath}/${dbName}DBPreCheckMapper.java" /> -package ${doMapper.packageName}; -import java.util.List; -/** - * 数据库字段检查 - */ -public interface ${dbName}DBPreCheckMapper{ - - List dbColumnCheck(); -} - 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()/> -<@pp.changeOutputFile name = "/main/resources/${xmlMapper.doMapper.xmlPath}/${dbName}DBPreCheckMapper.xml" /> - - - -<#assign idx = 0> - - - 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}; - - - -/** - * The table ${DO.desc} - */ -public class ${DO.className}{ - - <#list DO.fieldses as fields> - /** - * ${fields.name} ${fields.desc}. - */ - private ${fields.javaType} ${fields.name}; - - <#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}; - } - -} - 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}; - -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} - - * @return ${method.returnClass!} - */ - ${method.returnClass!} ${method.name}(<#list method.params as param><#if param_index gt 0>,<#if method.params?size == 1 && param.paramType == "String">@Param("${param.param}")<#if method.params?size gt 1>@Param("${param.param}")${param.paramType!} ${param.param}); - -} - 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}; - - -/** - * 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 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}; - } - -} - 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}; - -<@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}; - - - - -/** - * 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 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 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 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 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 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}; - } - -} - 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> - - - - <#--生成自定义ResultMap--> -<#list xmlMapper.resultMaps as resultMap> - <#assign extends = ""> - <#if resultMap.extend == "base"> - <#assign extends = "extends=\"BaseResultMap\""> - - - <#list resultMap.columnList as column> - <#if column.sqlName?upper_case =="ID"><#else> - - <#list resultMap.associations as association> - - - <#list resultMap.collections as collection> - - - - - - <#if xmlMapper.sqlMap?size == 0 > - <#-- baseSql --> - - <#list xmlMapper.table.columnList as column><#if column_index gt 0>,${column.sqlName} - - - <#-- baseSql --> - - <#list xmlMapper.table.columnList as column><#if column_index gt 0>,sf.${column.sqlName} - - <#else><#list xmlMapper.sqlMap?values as sqlXML> - ${sqlXML} - - - - <#-- 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!} - - <#else> - - <${lib.operation2Sql(operation.name)} id="${operation.name}Count" resultType="int"${lib.timeout(operation)}> -${operation.cdataPageCount!} - - - <${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} - - - - <#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}"> -${operation.cdata!} - - - - - 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!}"> - - - - <#list table.columnList as column><#if column_index gt 0><#if column_index%5==0>${" \n"} ,${column.sqlName} - - - - - <#list table.columnList as column><#if column_index gt 0><#if column_index%5==0>${"\n"} ,sf.${column.sqlName} - - - - <#if dalgen.dbType=="MySQL"> - - SELECT - LAST_INSERT_ID() - - <#elseif dalgen.dbType=="Oracle"> - - select seq_${table.sqlName?lower_case}.nextval from dual - - - - <#if column_index gt 0>,${column.sqlName} - - )VALUES( - <#list table.columnList as column> - <#if column_index gt 0>, ${lib.insertVal(column,dalgen)} - - ) - ]]> - - - - - - INSERT INTO ${table.sqlName?lower_case}( - <#list table.columnList as column> - <#if column_index gt 0>,${column.sqlName} - - )VALUES - - ( - <#list table.columnList as column> - <#if column_index gt 0>, ${lib.insertBatchVal(column,dalgen)} - - ) - - - -<#if table.primaryKeys??> - - - - DELETE FROM ${table.sqlName?lower_case} - WHERE - <#list table.primaryKeys.columnList as column> - <#if column_index gt 0>AND ${column.sqlName} = ${"#"}{${column.javaName},jdbcType=${column.sqlType}} - - ]]> - - - - SELECT * - FROM ${table.sqlName?lower_case} - WHERE - - <#if column_index gt 0>AND ${column.sqlName} = ${"#"}{${column.javaName},jdbcType=${column.sqlType}} - - ]]> - - -<#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>,${column.sqlName}${lib.space(column.sqlName)} = ${lib.updateVal(column)} - - - WHERE - <#list uniqueIndex.columnList as column> - <#if column_index gt 0>AND ${column.sqlName}${lib.space(column.sqlName)} = ${"#"}{${column.javaName},jdbcType=${column.sqlType}} - - ]]> - - - - - <#if column_index gt 0>AND ${column.sqlName}${lib.space(column.sqlName)} = ${"#"}{${column.javaName},jdbcType=${column.sqlType}} - - ]]> - - - - SELECT * - FROM ${table.sqlName?lower_case} - WHERE - - <#if column_index gt 0>AND ${column.sqlName}${lib.space(column.sqlName)} = ${"#"}{${column.javaName},jdbcType=${column.sqlType}} - - ]]> - - - -<#list table.normalIndexs as normalIndex> - - - SELECT * - FROM ${table.sqlName?lower_case} - WHERE - - <#if column_index gt 0>AND ${column.sqlName}${lib.space(column.sqlName)} = ${"#"}{${column.javaName},jdbcType=${column.sqlType}} - - ]]> - - -
- 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/> - - - - -<#-- 字段默认值 --> -<#function columnVal column> - <#if column.testVal??><#return column.testVal> - <#if column.javaName == "id"><#return "1"> - <#if column.javaName == "isDel"><#return "0"> - <#if column.javaType == "java.util.Date"><#return "1984-12-24"> - <#if column.javaType == "String"><#return column.javaName?substring(0,1)?cap_first> - <#return "1"> - - -<#-- 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()"> - <#assign columnVal = "0"> - - <#if column.javaName == "id"><#assign columnVal = "1"> - <#if column.javaName == "isDel"><#assign columnVal = "0"> - <#if column.javaType == "String"><#assign columnVal = column.javaName?substring(0,1)?cap_first> - - <#if column.javaType == "Long"><#return "${columnVal}L"> - <#if column.javaType == "String"><#return "\"${columnVal}\""> - - <#if column.testVal??> - <#if param.paramType?ends_with("Enum")> - <#return "${param.paramType}.${column.testVal}"/> - - <#return "TestParamValUtil.trans(${param.paramType}.class,\"${column.testVal}\")"/> - - <#return columnVal> - - - - <#if param.paramType?ends_with("Enum") && param.testVal??> - <#return "${param.paramType}.${param.testVal}"/> - - - <#if param.paramType == "String"><#return "\"${param.param}\""> - <#if param.paramType == "Long"><#return "1L"> - <#if param.paramType == "Integer"><#return "1"> - <#if param.paramType?starts_with("List")><#return "Lists.newArrayList(\"S\")"> - <#if param.paramType?starts_with("List")><#return "Lists.newArrayList(1L)"> - <#if param.paramType?starts_with("List")><#return "Lists.newArrayList(1)"> - <#if param.paramType?starts_with("List")><#return "Lists.newArrayList(1d)"> - <#if param.paramType?starts_with("List")><#return "Lists.newArrayList()"> - <#return "new ${param.paramType}()"> - - -<#-- 忽略不需要单元测试的类 --> -<#function neadTest methodName> - <#assign ignoreMethods = ["insert","insertBatch","update", "getById"]> - <#if ignoreMethods?seq_contains(methodName)><#return false> - <#if methodName != "insert" && methodName?starts_with("insert")><#return false> -<#return true> - - -<#function getByIdMethod motheds> - <#list motheds as method> - <#if method.name == "getById"><#return method> - - - -<#function fanType2Type fanType> - <#if fanType??> - <#return fanType?substring(fanType?last_index_of("<")+1,fanType?last_index_of(">"))> - <#else > - <#return fanType> - - - -<#function methodClass method> - <#if method.kvMap?? && method.kvMap == "true"> - <#if method.mapVType??> - <#assign valType = method.mapVType> - <#else > - <#assign valType = fanType2Type(method.returnClass)> - - <#return "Map<${method.mapKType},${valType}>"> - <#elseif method.kvMap?? && method.kvMap == "list"> - <#if method.mapVType??> - <#assign valType = method.mapVType> - <#else > - <#assign valType = fanType2Type(method.returnClass)> - - <#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)> - - <#return "Map<${method.mapKType},Set<${valType}>>"> - <#else> - <#return method.returnClass> - - - -<#function javaTypeTrun javaType> - <#if javaType?contains("<")> - <#return javaType?substring(0,javaType?index_of("<"))/> - - <#return javaType/> - 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)/> - - - -<#-- operation 2 sql --> -<#function operation2Sql param> - <#if param?starts_with("insert")><#return "insert"/> - <#if param?starts_with("update")><#return "update"/> - <#if param?starts_with("delete")><#return "delete"/> - <#return "select"/> - - -<#-- mapperxml result --> -<#function mapperResult operation> - <#if operation.resultmap??><#return 'resultMap="${operation.resultmap}"'/> - <#if operation.resulttype??><#return 'resultType="${operation.resulttype}"'/> - <#if operation.name?starts_with("insert")><#return ''/> - <#if operation.name?starts_with("update")><#return ''/> - <#if operation.name?starts_with("delete")><#return ''/> - <#return 'resultMap="BaseResultMap"'/> - - -<#function timeout operation> - <#if operation.timeout??><#return ' timeout="${operation.timeout}"'/> - <#return ""/> - - -<#-- insert 时字段处理 --> -<#function insertVal column dalgen> - <#if column.sqlName == "GMT_MODIFIED" || column.sqlName == "GMT_CREATE"><#return "now()"> - <#if column.sqlName?upper_case == "ID"><#return "null"> - <#return '${"#"}{${column.javaName},jdbcType=${column.sqlType}}'/> - - -<#-- insert 时字段处理 --> -<#function insertBatchVal column dalgen> - <#if column.sqlName == "GMT_MODIFIED" || column.sqlName == "GMT_CREATE"><#return "now()"> - <#if column.sqlName?upper_case == "ID"><#return "null"> - <#return '${"#"}{item.${column.javaName},jdbcType=${column.sqlType}}'/> - - -<#-- Update 时字段处理 --> -<#function updateVal column> - <#if column.sqlName == "GMT_MODIFIED" || column.sqlName == "GMT_CREATE"><#return "now()"> - <#return '${"#"}{${column.javaName},jdbcType=${column.sqlType}}'/> - - -<#-- update 中需要设置的字段 --> -<#function updateIncludeColumn dalgen column primaryKeys> - <#if column.sqlName == "CREATOR" || column.sqlName == "GMT_CREATE"> - <#return false> - - <#list primaryKeys as pkcolumn> - <#if pkcolumn.sqlName == column.sqlName><#return false> - - <#return true> - - -<#-- update 中需要设置的字段 --> -<#function updateIncludeUKColumn dalgen column primaryKeys uniqueColums> - <#if column.sqlName == "CREATOR" || column.sqlName == "GMT_CREATE"> - <#return false> - - <#if primaryKeys?? && primaryKeys.columnList??> - <#list primaryKeys.columnList as pkcolumn> - <#if pkcolumn.sqlName == column.sqlName><#return false> - - - <#list uniqueColums as pkcolumn> - <#if pkcolumn.sqlName == column.sqlName><#return false> - - <#return true> - - -<#function getMethodByMethodName daos tableName methodName> - <#list daos as dao> - <#if dao.tableName == tableName> - <#list dao.motheds as method> - <#if method.name == methodName> - <#return method> - - - - - - -<#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]> - - - - - - - - <#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 !imports?seq_contains("java.util.List")> - <#assign imports = imports+["java.util.List"]> - - - - - - - - -<#list imports as import> -import ${import}; - - - -<#function genDOMapperNameSpace doMappers tableName> - <#list doMappers as doMapper> - <#if doMapper.tableName == tableName> - <#return doMapper.packageName+"."+doMapper.className> - - - - -<#function isClasz import listF> - <#assign clazz = listF> - <#if listF?contains("<") && import?ends_with(listF?substring(listF?index_of("<")+1,listF?index_of(">")))> - <#return true> - -<#return false> - 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> 其中 ?分表对应 mapK,mapV类型 set 返回Map> 其中 ?分表对应 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>,${param.paramType!} <#assign pagingParam = param.param/>${param.param}){ + <#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 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>, ${param.param}); 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}{ } } + 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} 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> + <#--生成自定义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>,${column.sqlName} @@ -44,6 +48,7 @@ <#list xmlMapper.table.columnList as column><#if column_index gt 0>,sf.${column.sqlName} + <#else><#list xmlMapper.sqlMap?values as sqlXML> ${sqlXML} @@ -59,11 +64,11 @@ ${operation.cdata!} <#else> - + <${lib.operation2Sql(operation.name)} id="${operation.name}Count" resultType="int"${lib.timeout(operation)}> ${operation.cdataPageCount!} - + <${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!} <#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 operation.autoGen> +<@m.autoGen operation.name ,xmlMapper.table/> +<#else> ${operation.cdata!} + 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!}"> - - <#list table.columnList as column><#if column_index gt 0><#if column_index%5==0>${" \n"} ,${column.sqlName} - + <@m.BaseColumnList table/> - - <#list table.columnList as column><#if column_index gt 0><#if column_index%5==0>${"\n"} ,sf.${column.sqlName} - + <@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 column_index gt 0>,${column.sqlName} - - )VALUES( - <#list table.columnList as column> - <#if column_index gt 0>, ${lib.insertVal(column,dalgen)} - - ) - ]]> + + <@m.insertMethod table/> - - INSERT INTO ${table.sqlName?lower_case}( - <#list table.columnList as column> - <#if column_index gt 0>,${column.sqlName} - - )VALUES - - ( - <#list table.columnList as column> - <#if column_index gt 0>, ${lib.insertBatchVal(column,dalgen)} - - ) - + + <@m.insertBatchMethod table/> <#if table.primaryKeys??>