From 3570a71ab5ba56b4f29f6083ef7c32179ef3e231 Mon Sep 17 00:00:00 2001 From: "MOSHOW.K.ZHENG" Date: Tue, 10 Sep 2019 00:06:25 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8Dmapper=E6=8E=A5=E5=8F=A3loa?= =?UTF-8?q?d=E6=96=B9=E6=B3=95=EF=BC=8C=E4=BD=86=E6=98=AFxml=E4=B8=AD?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E4=B8=8D=E5=8C=B9=E9=85=8D=E9=97=AE=E9=A2=98?= =?UTF-8?q?=202.=E7=A7=BB=E9=99=A4mapper=E4=B8=ADCRUD=E6=97=B6=E7=9A=84@pa?= =?UTF-8?q?ram=20=E6=B3=A8=E8=A7=A3=EF=BC=8C=E4=BC=9A=E5=BD=B1=E5=93=8Dxml?= =?UTF-8?q?=E7=9A=84=E8=A7=A3=E6=9E=90=EF=BC=88=E6=84=9F=E8=B0=A2@caojiant?= =?UTF-8?q?ao=E7=9A=84=E5=8F=8D=E9=A6=88=EF=BC=89=E3=80=823.=E4=BC=98?= =?UTF-8?q?=E5=8C=96MyBatis=E7=9A=84xml=E6=96=87=E4=BB=B6=E5=AF=B9Oracle?= =?UTF-8?q?=E7=9A=84=E6=94=AF=E6=8C=81=E3=80=82=EF=BC=88=E6=84=9F=E8=B0=A2?= =?UTF-8?q?@wylove1992=E7=9A=84=E5=8F=8D=E9=A6=88=EF=BC=89=204.=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=AF=B9boolean=E7=9A=84=E5=A4=84=E7=90=86=EF=BC=88?= =?UTF-8?q?=E6=84=9F=E8=B0=A2@violinxsc=E7=9A=84=E5=8F=8D=E9=A6=88?= =?UTF-8?q?=EF=BC=89=E4=BB=A5=E5=8F=8A=E4=BC=98=E5=8C=96tinyint=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E7=94=9F=E6=88=90boolean=E7=B1=BB=E5=9E=8B=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=88=E6=84=9F=E8=B0=A2@hahaYhui=E7=9A=84=E5=8F=8D?= =?UTF-8?q?=E9=A6=88=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + .../system/generator/util/TableParseUtil.java | 7 +- .../code-generator/mybatis/mapper.ftl | 116 ++++++------ .../code-generator/mybatis/mybatis.ftl | 176 +++++++++--------- 4 files changed, 151 insertions(+), 149 deletions(-) diff --git a/README.md b/README.md index bcd620a..155d5db 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ SpringBootCodeGenerator CSDN博客 http://blog.csdn.net/moshowgame 更新日期 更新内容 +201909101.修复mapper接口load方法,但是xml中方法不匹配问题 2.移除mapper中CRUD时的@param 注解,会影响xml的解析(感谢@caojiantao的反馈)。3.优化MyBatis的xml文件对Oracle的支持。(感谢@wylove1992的反馈) 4.新增对boolean的处理(感谢@violinxsc的反馈)以及优化tinyint类型生成boolean类型问题(感谢@hahaYhui的反馈) 20190909添加是否下划线转换为驼峰的选择(感谢@youngking28 的pull request)。 201905181.优化注释 2.修改 mybatis模板中 controller注解 3.修改 mybatis模板中 dao文件使用为 mapper文件 4.修改 mybatis模板中 service实现类中的一个 bug 5.修改 index.ftl文件中 mybatis模板的 dao -> mapper(感谢@unqin的pull request) 20190511优化mybatis模块的dao和xml模板,修改dao接口注解为@Repository,所有dao参数改为包装类,删除update语句最后的UpdateTime = NOW(),修改dao接口文件的方法注释使其更符合javaDoc的标准,修改insert语句增加插入行主键的返回,修改load的方法名为selectByPrimaryKey,修改xml的update语句新增动态if判空,修改xml的insert语句新增动态插入判空,更符合mybatisGenerator标准(感谢@Archer-Wen的贡献 )。 diff --git a/generator-web/src/main/java/com/softdev/system/generator/util/TableParseUtil.java b/generator-web/src/main/java/com/softdev/system/generator/util/TableParseUtil.java index f2f2c5d..b796a70 100644 --- a/generator-web/src/main/java/com/softdev/system/generator/util/TableParseUtil.java +++ b/generator-web/src/main/java/com/softdev/system/generator/util/TableParseUtil.java @@ -176,7 +176,7 @@ public class TableParseUtil { String fieldClass = Object.class.getSimpleName(); //2018-9-16 zhengk 补充char/clob/blob/json等类型,如果类型未知,默认为String //2018-11-22 lshz0088 处理字段类型的时候,不严谨columnLine.contains(" int") 类似这种的,可在前后适当加一些空格之类的加以区分,否则当我的字段包含这些字符的时候,产生类型判断问题。 - if (columnLine.contains(" int") || columnLine.contains("tinyint") || columnLine.contains("smallint")) { + if (columnLine.contains(" int") || columnLine.contains("smallint")) { fieldClass = Integer.class.getSimpleName(); } else if (columnLine.contains("bigint")) { fieldClass = Long.class.getSimpleName(); @@ -221,7 +221,10 @@ public class TableParseUtil { }else{ fieldClass = BigDecimal.class.getSimpleName(); } - }else { + } else if (columnLine.contains("boolean")|| columnLine.contains("tinyint") ) { + //20190910 MOSHOW.K.ZHENG 新增对boolean的处理(感谢@violinxsc的反馈)以及修复tinyint类型字段无法生成boolean类型问题(感谢@hahaYhui的反馈) + fieldClass = Boolean.class.getSimpleName(); + } else { fieldClass = String.class.getSimpleName(); } diff --git a/generator-web/src/main/resources/templates/code-generator/mybatis/mapper.ftl b/generator-web/src/main/resources/templates/code-generator/mybatis/mapper.ftl index f2d0336..9e0d060 100644 --- a/generator-web/src/main/resources/templates/code-generator/mybatis/mapper.ftl +++ b/generator-web/src/main/resources/templates/code-generator/mybatis/mapper.ftl @@ -1,59 +1,57 @@ -import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Mapper; -import org.springframework.stereotype.Repository; -import java.util.List; - -/** -* ${classInfo.classComment} -* @author ${authorName} -* @date ${.now?string('yyyy/MM/dd')} -*/ -@Mapper -@Repository -public interface ${classInfo.className}Mapper { - - /** - * [新增] - * @author ${authorName} - * @date ${.now?string('yyyy/MM/dd')} - **/ - int insert(@Param("${classInfo.className?uncap_first}") ${classInfo.className} ${classInfo.className?uncap_first}); - - /** - * [刪除] - * @author ${authorName} - * @date ${.now?string('yyyy/MM/dd')} - **/ - int delete(@Param("id") int id); - - /** - * [更新] - * @author ${authorName} - * @date ${.now?string('yyyy/MM/dd')} - **/ - int update(@Param("${classInfo.className?uncap_first}") ${classInfo.className} ${classInfo.className?uncap_first}); - - /** - * [查詢] 根據主鍵 id 查詢 - * @author ${authorName} - * @date ${.now?string('yyyy/MM/dd')} - **/ - ${classInfo.className} load(@Param("id") int id); - - /** - * [查詢] 分頁查詢 - * @author ${authorName} - * @date ${.now?string('yyyy/MM/dd')} - **/ - List<${classInfo.className}> pageList(@Param("offset") int offset, - @Param("pagesize") int pagesize); - - /** - * [查詢] 分頁查詢 count - * @author ${authorName} - * @date ${.now?string('yyyy/MM/dd')} - **/ - int pageListCount(@Param("offset") int offset, - @Param("pagesize") int pagesize); - -} +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; +import java.util.List; + +/** +* ${classInfo.classComment} +* @author ${authorName} +* @date ${.now?string('yyyy/MM/dd')} +*/ +@Mapper +@Repository +public interface ${classInfo.className}Mapper { + + /** + * [新增] + * @author ${authorName} + * @date ${.now?string('yyyy/MM/dd')} + **/ + int insert(${classInfo.className} ${classInfo.className?uncap_first}); + + /** + * [刪除] + * @author ${authorName} + * @date ${.now?string('yyyy/MM/dd')} + **/ + int delete(int id); + + /** + * [更新] + * @author ${authorName} + * @date ${.now?string('yyyy/MM/dd')} + **/ + int update(${classInfo.className} ${classInfo.className?uncap_first}); + + /** + * [查詢] 根據主鍵 id 查詢 + * @author ${authorName} + * @date ${.now?string('yyyy/MM/dd')} + **/ + ${classInfo.className} load(int id); + + /** + * [查詢] 分頁查詢 + * @author ${authorName} + * @date ${.now?string('yyyy/MM/dd')} + **/ + List<${classInfo.className}> pageList(int offset,int pagesize); + + /** + * [查詢] 分頁查詢 count + * @author ${authorName} + * @date ${.now?string('yyyy/MM/dd')} + **/ + int pageListCount(int offset,int pagesize); + +} diff --git a/generator-web/src/main/resources/templates/code-generator/mybatis/mybatis.ftl b/generator-web/src/main/resources/templates/code-generator/mybatis/mybatis.ftl index df609e5..c3312e0 100644 --- a/generator-web/src/main/resources/templates/code-generator/mybatis/mybatis.ftl +++ b/generator-web/src/main/resources/templates/code-generator/mybatis/mybatis.ftl @@ -1,89 +1,89 @@ - - - - - - <#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0> - <#list classInfo.fieldList as fieldItem > - - - - - - - <#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0> - <#list classInfo.fieldList as fieldItem > - `${fieldItem.columnName}`<#if fieldItem_has_next>, - - - - - - INSERT INTO ${classInfo.tableName} - - <#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0> - <#list classInfo.fieldList as fieldItem > - <#if fieldItem.columnName != "id_" > - ${r""} - `${fieldItem.columnName}`<#if fieldItem_has_next>, - ${r""} - - - - - - <#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0> - <#list classInfo.fieldList as fieldItem > - <#if fieldItem.columnName != "id_" > - <#--<#if fieldItem.columnName="addtime" || fieldItem.columnName="updatetime" > - ${r""} - NOW()<#if fieldItem_has_next>, - ${r""} - <#else>--> - ${r""} - ${r"#{"}${fieldItem.fieldName}${r"}"}<#if fieldItem_has_next>, - ${r""} - <#----> - - - - - - - - DELETE FROM ${classInfo.tableName} - WHERE `id_` = ${r"#{id}"} - - - - UPDATE ${classInfo.tableName} - - <#list classInfo.fieldList as fieldItem > - <#if fieldItem.columnName != "id_" && fieldItem.columnName != "AddTime" && fieldItem.columnName != "UpdateTime" > - ${r""}${fieldItem.columnName} = ${r"#{"}${fieldItem.fieldName}${r"}"}<#if fieldItem_has_next>,${r""} - - - - WHERE `id_` = ${r"#{"}id${r"}"} - - - - - - - - - + + + + + + <#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0> + <#list classInfo.fieldList as fieldItem > + + + + + + + <#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0> + <#list classInfo.fieldList as fieldItem > + ${fieldItem.columnName}<#if fieldItem_has_next>, + + + + + + INSERT INTO ${classInfo.tableName} + + <#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0> + <#list classInfo.fieldList as fieldItem > + <#if fieldItem.columnName != "id" > + ${r""} + ${fieldItem.columnName}<#if fieldItem_has_next>, + ${r""} + + + + + + <#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0> + <#list classInfo.fieldList as fieldItem > + <#if fieldItem.columnName != "id" > + <#--<#if fieldItem.columnName="addtime" || fieldItem.columnName="updatetime" > + ${r""} + NOW()<#if fieldItem_has_next>, + ${r""} + <#else>--> + ${r""} + ${r"#{"}${fieldItem.fieldName}${r"}"}<#if fieldItem_has_next>, + ${r""} + <#----> + + + + + + + + DELETE FROM ${classInfo.tableName} + WHERE id = ${r"#{id}"} + + + + UPDATE ${classInfo.tableName} + + <#list classInfo.fieldList as fieldItem > + <#if fieldItem.columnName != "id" && fieldItem.columnName != "AddTime" && fieldItem.columnName != "UpdateTime" > + ${r""}${fieldItem.columnName} = ${r"#{"}${fieldItem.fieldName}${r"}"}<#if fieldItem_has_next>,${r""} + + + + WHERE id = ${r"#{"}id${r"}"} + + + + + + + + + \ No newline at end of file