mysql-generator用法_mybatis使用generator自动生成代码时的类型转换

使用mybatis的generator自动生成代码,但是oracle数据库中number(6,2)总是自动转成BigDecimal,我想要转成的是float类型 这样就写了一个类型转换器,需要继承JavaTypeResolver接口 然后在mybaties配置文件generatorConfig.xml中类型转换配置位置添加上即可 j

使用mybatis的generator自动生成代码,但是oracle数据库中number(6,2)总是自动转成BigDecimal,我想要转成的是float类型

这样就写了一个类型转换器,需要继承JavaTypeResolver接口

然后在mybaties配置文件generatorConfig.xml中类型转换配置位置添加上即可

类型转换器MyJavaTypeResolver主要代码

public FullyQualifiedJavaType calculateJavaType(

IntrospectedColumn introspectedColumn) {

// TODO Auto-generated method stub

FullyQualifiedJavaType answer;

JdbcTypeInformation jdbcTypeInformation = typeMap

.get(introspectedColumn.getJdbcType());

if (jdbcTypeInformation == null) {

switch (introspectedColumn.getJdbcType()) {

case Types.DECIMAL:

case Types.NUMERIC:

if(introspectedColumn.getScale() > 0)

{//如果包含小数点则转换成float

answer = new FullyQualifiedJavaType(Float.class.getName());

}else{

if ( introspectedColumn.getLength() > 18

|| forceBigDecimals) {

answer = new FullyQualifiedJavaType(BigDecimal.class

.getName());

} else if (introspectedColumn.getLength() > 9) {

answer = new FullyQualifiedJavaType(Long.class.getName());

} else if (introspectedColumn.getLength() > 4) {

answer = new FullyQualifiedJavaType(Integer.class.getName());

} else {

answer = new FullyQualifiedJavaType(Short.class.getName());

}

}

break;

default:

answer = null;

break;

}

} else {

answer = jdbcTypeInformation.getFullyQualifiedJavaType();

}

return answer;

}

本文原创发布php中文网,转载请注明出处,感谢您的尊重!


版权声明:本文为weixin_39842611原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。