zoukankan      html  css  js  c++  java
  • mybatis-generator 类型转化插件

    因为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
  • 相关阅读:
    Oracle86和92语法的连接,子查询,集合的操作
    Oracle笛卡尔积,分组,多表连接
    Oracle排序,伪列,字符函数,数字函数,日期行数
    Oracle基本的数据类型以及简单sql查询
    用while语句打印阶乘
    Switch小练习
    if语句多表达式与一个表达式
    三元操作符
    整数的二进制表达
    与或
  • 原文地址:https://www.cnblogs.com/loveyou/p/13883276.html
Copyright © 2011-2022 走看看