欢迎投稿

今日深度:

mybatis使用generator自动生成代码时的类型转换,

mybatis使用generator自动生成代码时的类型转换,mybatisgenerator


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

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

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

<javaTypeResolver type="com.generator.MyJavaTypeResolver">
	<property name="forceBigDecimals" value="false" />											<!-- 类型解析器 -->
</javaTypeResolver>
类型转换器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;
	}




MyBatis整合开发代码怎自动生成(Ant)

mybatis3.0提供了代码生成的功能.目前最新的是mybatis-generator-core-1.3.1.这是一个比较灵活的插件.
当然不是IDE集成的,只是一个包.可以在命令行中使用,也可以用Ant,Maven甚至直接写到Java代码中来实现MyBatis代码的生成.如果它还是不满足则可以进行拓展.有了它就可以在使用建模工具生成数据库之后,连接数据库来生成相应的基础代码.包括了值对象,数据访问对象的接口及其MyBatis实现.
个人还是喜欢用Ant的方式.下面就用Ant生成的方式来说明.首先写个Ant文件来声明一些属性和几个Target.这些Target对于要生成的模块.分成多个模块便于管理和编译.
build.xml:查看文本复制到剪贴板<?xml??version="1.0"?????<project??default="sysGenerator"??basedir=
"."????????????<property??name="generated.source.dir"??value="${basedir}"??/????????????????<target??name="sysGenerator"??description="mybatis-generator"????????????????????<taskdef??name="sysGenerator"????????????????????????????classname="org.mybatis.generator.ant.GeneratorAntTask"????????????????????????????classpath=
"../Common_lib/mybatis-generator-core-1.3.1.jar"??/????????????????????<sysGenerator??overwrite="true"??configfile="sysGenerator.xml"??verbose="false"??????????????????????????????<propertyset????????????????????????????????????<propertyref??name="generated.source.dir"/????????????????????????????</propertyset????????????????????</sysGenerator????????????</target????</project????首先定义了一个名称为sysGenerator的Target.实际操作中可以按模块创建多个.它有个taskdef 定义的是任务的类型和要引用到的包.然后就是它的正文内容.configfile就是配置生成代码的信息.个人建议按照系统分模块.下面看看sysGenerator.xml这个文件的内容查看文本复制到剪贴板<generatorConfiguration??????......余下全文>>
 

mybatis利用generatorConfig自动生成的DAO层可以实现复杂的sql语句?

不能。。。想都别想;
工具根本不知道不复杂的业务逻辑是什么。这才叫需求。
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/2846.html NewsArticle mybatis使用generator自动生成代码时的类型转换,mybatisgenerator 使用mybatis的generator自动生成代码,但是oracle数据库中number(6,2)总是自动转成 BigDecimal,我想要转成的是float类型 这样就写了一...
评论暂时关闭