ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

mybatis-generator 类型转化插件

2020-10-27 10:02:23  阅读:285  来源: 互联网

标签:FullyQualifiedJavaType 插件 generator answer mybatis defaultType Types


因为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

 

标签:FullyQualifiedJavaType,插件,generator,answer,mybatis,defaultType,Types
来源: https://www.cnblogs.com/loveyou/p/13883276.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有