mybatis generator如何定制JavaTypeResolver,使smallint类型的数据库字段在po中的类型为Integer?

 

一、问题概述

忙了一段时间的jenkins持续集成,又要开始开发任务了。这两天在用mybatis generator来逆向生成dao层工程。

其中一个问题在于,组长在设计表的时候,不少枚举使用了smallint类型,如下:

然后,mybatis generator就会针对smallint类型的列,生成short类型的java域。

我还是偏爱Integer,因为懒。懒得转来转去。

 

二、解决办法

 修改mybatis generator使用的默认的JavaTypeResolver实现。

其默认实现为org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl,其中有如下的一段:

这个一猜就是,将smallint类型的字段,映射为Short类型的java域。

我的办法是将其默认实现类的内容复制,然后修改了上图中的标识处,然后配置到xml文件中。

上面就是我自定义的类型解析器,内容拷贝了默认实现。然后照下面这样修改了:

配置到xml:

 

差不多就这样。ok了。

 

三、源码

https://github.com/cctvckl/customed-mybatis-generator

 

posted @ 2018-05-25 20:04  三国梦回  阅读(10212)  评论(1编辑  收藏  举报