关于数据库Oracle表字段为NVARCHAR2 与Mybatis Generator运用问题

在使用Mybatis Generator时遇到Oracle数据库NVARCHAR2字段被解析为Object类型的问题,导致启动错误。解决方案是自定义JavaTypeResolver,将NVARCHAR2映射为String类型,并修改mapper.xml中jdbcType的生成。文章详细介绍了如何创建自定义类替换默认实现,以及如何在项目中应用这些改动。
摘要由CSDN通过智能技术生成

由于使用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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值