使用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;
	}
	 
下载本文