背景
当前mybatis-generator官方插件生成的xml里面的resultMap默认会把tinyint映射成Byte,smallint映射成Short,使用起来繁琐
实现目标
在生成的DO类中使用Integer替换Byte和Short。也就是需要生成以下代码:
@Data
@NoArgsConstructor
public class XxxDO {
...
/**
* 是否逻辑删除 0:否;1:是
*/
private Integer isDelete;
}
XxxMapper.xml中result节点jdbcType设置成INTEGER:
<resultMap id="BaseResultMap" type="com.linlishi.XxxDO">
...
<result column="is_delete" jdbcType="INTEGER" property="isDelete" />
</resultMap>
使用
在generator-configuration.xml 添加插件
<generatorConfiguration>
<context>
<javaTypeResolver type="com.linlishi.mybatis.generator.resolver.JavaTypeResolver">
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
...
</context>
...
</generatorConfiguration>
pom.xml文件中增加依赖
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.0</version>
...
<dependencies>
<dependency>
<groupId>com.linlishi</groupId>
<artifactId>mybatis-generator-plugin</artifactId>
<version>1.0.1</version>
</dependency>
</dependencies>
</plugin>
</plugins>
代码已上传到https://github.com/cnlinlishi/mybatis-generator-plugin
可自主拉取,安装到本地maven库
后记
如果有更多拓展想法可联系本人,将为你实现