惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园_首页
G
Google Developers Blog
A
About on SuperTechFans
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
Last Week in AI
Last Week in AI
博客园 - 聂微东
T
Tailwind CSS Blog
宝玉的分享
宝玉的分享
V
Visual Studio Blog
美团技术团队
The Cloudflare Blog
量子位
T
The Blog of Author Tim Ferriss
罗磊的独立博客
V
V2EX
S
SegmentFault 最新的问题
小众软件
小众软件
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
MyScale Blog
MyScale Blog
博客园 - Franky

博客园 - 月·漩涡

使用钉钉远程操作你的claude code java写的马赛克拼图生成软件 mybatis-generator 注释插件 mybatis-generator lombok插件 mybatis-generator 唯一索引插件 mybatis-generator 自定义插件 Dubbo 使用rest协议发布http服务 Dubbo封装rest服务返回结果 dubbo rest返回值异常Incompatible types: declared root type 解决resteasy上传表单文件名乱码 RSA加密解密及RSA加签验签 使用OTP动态口令(每分钟变一次)进行登录认证 讲一下创业公司的技术架构演进 开源分布式任务调度平台Cuckoo-Schedule Nginx二级域名配置 Java分页下载 Solr6+IKAnalyzer分词环境搭建 消息发送平台简单架构设计 优先级线程池实现
mybatis-generator 类型转化插件
月·漩涡 · 2020-10-27 · via 博客园 - 月·漩涡

因为mybatis的tinyint默认映射为bit类型,代码不方便操作和转换。因此需要对类型进行转化

插件地址:(https://github.com/suyin58/mybatis-generator-tddl/blob/master/generator-plugin/src/main/java/com/toolplat/generator/plugins/JavaTypeResolverMybatisDefaultImpl.java)

插件需要继承JavaTypeResolverDefaultImpl,并重写overrideDefaultType方法。针对需要转化的数据类型进行特殊处理

public class JavaTypeResolverMybatisDefaultImpl extends JavaTypeResolverDefaultImpl {

    @Override
    protected FullyQualifiedJavaType overrideDefaultType(IntrospectedColumn column, FullyQualifiedJavaType defaultType) {
        FullyQualifiedJavaType answer = defaultType;

        switch (column.getJdbcType()) {
            case Types.BIT:
                answer = this.calculateBitReplacement(column, defaultType);
                break;
            case Types.NUMERIC:
            case Types.DECIMAL:
                answer = this.calculateBigDecimalReplacement(column, defaultType);
                break;
            case Types.TINYINT:
                answer = new FullyQualifiedJavaType(Integer.class.getName());
                break;
            default:
                break;
        }

        return answer;
    }
}

View Code

配置文件中添加该配置:(https://github.com/suyin58/mybatis-generator-tddl/blob/master/generator-test/src/test/resources/generatorConfigMyBatis3.xml)

 <!--
        默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer
        true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal
        -->
        <javaTypeResolver type="com.toolplat.generator.plugins.JavaTypeResolverMybatisDefaultImpl">
            <property name="forceBigDecimals" value="true" />
        </javaTypeResolver>

View Code