由于使用mybatis框架,自然而然就需要生成对应mapper.xml文件,由于工作量太多且容易出错,就借由Mybatis Generator插件来自动生成model层 dao层 和mapper.xml文件。发现数据库oracle的字段如果是NVARCHAR2类型,那么model层对应的字段则为Object类型 (应该和NVARCHAR类型一样对应String类型),xml文件中jdbcType为NVARCHAR2(mybatis不支持NVARCHAR2类型,项目启动时会报错。),这都不是想要的结果,如果一个一个改,那也是很大的工作量。在这里提供一个本人试验成功的方法。
修改model层:
查看源码,发现generatorConfig.xml配置文件中的<javaTypeResolver> 作用即为生成对应model层字段。JavaTypeResolver接口的实现类为org.mybatis.generator.internal.types包下的JavaTypeResolverDefaultImpl。可以看到NVARCHAR2相当于Types.OTHER 被解析成OTHER类型(如下图)。
解决方法:
首先 我们在项目中新建org.mybatis.generator.internal.types包,然后在包中新建My