1.修复mapper接口load方法,但是xml中方法不匹配问题 2.移除mapper中CRUD时的@param 注解,会影响xml的解析(感谢@caojiantao的反馈)。3.优化MyBatis的xml文件对Oracle的支持。(感谢@wylove1992的反馈) 4.新增对boolean的处理(感谢@violinxsc的反馈)以及优化tinyint类型生成boolean类型问题(感谢@hahaYhui的反馈)

This commit is contained in:
MOSHOW.K.ZHENG 2019-09-10 00:06:25 +08:00
parent 26a45a5915
commit 3570a71ab5
4 changed files with 151 additions and 149 deletions

View File

@ -16,6 +16,7 @@ SpringBootCodeGenerator
<tr><td>CSDN博客</td> <td>http://blog.csdn.net/moshowgame</td></tr>
<tr><td></td> <td></td></tr>
<tr><td>更新日期</td> <td>更新内容</td></tr>
<tr><td>20190910<td>1.修复mapper接口load方法但是xml中方法不匹配问题 2.移除mapper中CRUD时的@param 注解会影响xml的解析感谢@caojiantao的反馈。3.优化MyBatis的xml文件对Oracle的支持。感谢@wylove1992的反馈 4.新增对boolean的处理感谢@violinxsc的反馈以及优化tinyint类型生成boolean类型问题感谢@hahaYhui的反馈 </td></tr>
<tr><td>20190909<td>添加是否下划线转换为驼峰的选择(感谢@youngking28 的pull request</td></tr>
<tr><td>20190518<td>1.优化注释 2.修改 mybatis模板中 controller注解 3.修改 mybatis模板中 dao文件使用为 mapper文件 4.修改 mybatis模板中 service实现类中的一个 bug 5.修改 index.ftl文件中 mybatis模板的 dao -> mapper感谢@unqin的pull request</td></tr>
<tr><td>20190511<td>优化mybatis模块的dao和xml模板修改dao接口注解为@Repository所有dao参数改为包装类删除update语句最后的UpdateTime = NOW()修改dao接口文件的方法注释使其更符合javaDoc的标准修改insert语句增加插入行主键的返回修改load的方法名为selectByPrimaryKey修改xml的update语句新增动态if判空修改xml的insert语句新增动态插入判空更符合mybatisGenerator标准感谢@Archer-Wen的贡献 )。</td></tr>

View File

@ -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();
}

View File

@ -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);
}

View File

@ -1,89 +1,89 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="${packageName}.dao.${classInfo.className}Dao">
<resultMap id="BaseResultMap" type="${packageName}.entity.${classInfo.className}Entity" >
<#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0>
<#list classInfo.fieldList as fieldItem >
<result column="${fieldItem.columnName}" property="${fieldItem.fieldName}" />
</#list>
</#if>
</resultMap>
<sql id="Base_Column_List">
<#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0>
<#list classInfo.fieldList as fieldItem >
`${fieldItem.columnName}`<#if fieldItem_has_next>,</#if>
</#list>
</#if>
</sql>
<insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="${packageName}.entity.${classInfo.className}Entity">
INSERT INTO ${classInfo.tableName}
<trim prefix="(" suffix=")" suffixOverrides=",">
<#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0>
<#list classInfo.fieldList as fieldItem >
<#if fieldItem.columnName != "id_" >
${r"<if test ='null != "}${fieldItem.fieldName}${r"'>"}
`${fieldItem.columnName}`<#if fieldItem_has_next>,</#if>
${r"</if>"}
</#if>
</#list>
</#if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<#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"<if test ='null != "}${fieldItem.fieldName}${r"'>"}
NOW()<#if fieldItem_has_next>,</#if>
${r"</if>"}
<#else>-->
${r"<if test ='null != "}${fieldItem.fieldName}${r"'>"}
${r"#{"}${fieldItem.fieldName}${r"}"}<#if fieldItem_has_next>,</#if>
${r"</if>"}
<#--</#if>-->
</#if>
</#list>
</#if>
</trim>
</insert>
<delete id="delete" >
DELETE FROM ${classInfo.tableName}
WHERE `id_` = ${r"#{id}"}
</delete>
<update id="update" parameterType="${packageName}.entity.${classInfo.className}Entity">
UPDATE ${classInfo.tableName}
<set>
<#list classInfo.fieldList as fieldItem >
<#if fieldItem.columnName != "id_" && fieldItem.columnName != "AddTime" && fieldItem.columnName != "UpdateTime" >
${r"<if test ='null != "}${fieldItem.fieldName}${r"'>"}${fieldItem.columnName} = ${r"#{"}${fieldItem.fieldName}${r"}"}<#if fieldItem_has_next>,</#if>${r"</if>"}
</#if>
</#list>
</set>
WHERE `id_` = ${r"#{"}id${r"}"}
</update>
<select id="selectByPrimaryKey" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List" />
FROM ${classInfo.tableName}
WHERE `id_` = ${r"#{id}"}
</select>
<select id="pageList" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List" />
FROM ${classInfo.tableName}
LIMIT ${r"#{offset}"}, ${r"#{pageSize}"}
</select>
<select id="pageListCount" resultType="java.lang.Integer">
SELECT count(1)
FROM ${classInfo.tableName}
</select>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="${packageName}.dao.${classInfo.className}Dao">
<resultMap id="BaseResultMap" type="${packageName}.entity.${classInfo.className}Entity" >
<#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0>
<#list classInfo.fieldList as fieldItem >
<result column="${fieldItem.columnName}" property="${fieldItem.fieldName}" />
</#list>
</#if>
</resultMap>
<sql id="Base_Column_List">
<#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0>
<#list classInfo.fieldList as fieldItem >
${fieldItem.columnName}<#if fieldItem_has_next>,</#if>
</#list>
</#if>
</sql>
<insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="${packageName}.entity.${classInfo.className}Entity">
INSERT INTO ${classInfo.tableName}
<trim prefix="(" suffix=")" suffixOverrides=",">
<#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0>
<#list classInfo.fieldList as fieldItem >
<#if fieldItem.columnName != "id" >
${r"<if test ='null != "}${fieldItem.fieldName}${r"'>"}
${fieldItem.columnName}<#if fieldItem_has_next>,</#if>
${r"</if>"}
</#if>
</#list>
</#if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<#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"<if test ='null != "}${fieldItem.fieldName}${r"'>"}
NOW()<#if fieldItem_has_next>,</#if>
${r"</if>"}
<#else>-->
${r"<if test ='null != "}${fieldItem.fieldName}${r"'>"}
${r"#{"}${fieldItem.fieldName}${r"}"}<#if fieldItem_has_next>,</#if>
${r"</if>"}
<#--</#if>-->
</#if>
</#list>
</#if>
</trim>
</insert>
<delete id="delete" >
DELETE FROM ${classInfo.tableName}
WHERE id = ${r"#{id}"}
</delete>
<update id="update" parameterType="${packageName}.entity.${classInfo.className}Entity">
UPDATE ${classInfo.tableName}
<set>
<#list classInfo.fieldList as fieldItem >
<#if fieldItem.columnName != "id" && fieldItem.columnName != "AddTime" && fieldItem.columnName != "UpdateTime" >
${r"<if test ='null != "}${fieldItem.fieldName}${r"'>"}${fieldItem.columnName} = ${r"#{"}${fieldItem.fieldName}${r"}"}<#if fieldItem_has_next>,</#if>${r"</if>"}
</#if>
</#list>
</set>
WHERE id = ${r"#{"}id${r"}"}
</update>
<select id="load" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List" />
FROM ${classInfo.tableName}
WHERE id = ${r"#{id}"}
</select>
<select id="pageList" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List" />
FROM ${classInfo.tableName}
LIMIT ${r"#{offset}"}, ${r"#{pageSize}"}
</select>
<select id="pageListCount" resultType="java.lang.Integer">
SELECT count(1)
FROM ${classInfo.tableName}
</select>
</mapper>