您好,欢迎来到软文情感网。
搜索
您的当前位置:首页mybatis使用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;
	}

Copyright © 2019- ruangwengfa.com 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务