Oracle数据库使用springboot+mybatis逆向生成文件时XML代码内容重复生成

Oracle数据库使用springboot+mybatis逆向生成文件时XML代码内容重复生成

最近在项目中使用oracle数据库,使用mybatis逆向生成文件时发现xml文件时重复生成大量重复代码,如图:

Oracle数据库使用springboot+mybatis逆向生成文件时XML代码内容重复生成
一脸懵逼!

刚开始我还以为是我自己操作错误,后来才发现原来是因为神奇的Oracle。
经过各种百度找到原因:

Oracle中一个用户对应一个schema,当用户中存在多个schema可以访问相同的表名时,使用mybatis生成该表的mapper.xml将会出现内容重复问题。

但是我和哥们同样的配置他就生成一次而我生成多次,这个原因没找到。

解决方法:

在你的Oracle数据库中使用sql:
select SYS_CONTEXT(‘USERENV’,‘CURRENT_SCHEMA’) CURRENT_SCHEMA from dual;
返回的是你的用户名XXX(上文说的schema),然后在mybatis配置生成表的位置加上schema="XXX"

 <table schema="schema" tableName="tableName" domainObjectName="TableEntity"></table>

这样可以解决XML文件代码重复生成的问题

注意: 这样写避免了重复生成代码,但是会在原来的层级下多生成一层以你的schema为名的文件夹,即生成的位置会不同,你需要根据你的项目工程层级以及位置自己进行修改,或者就直接手动把多余的代码删掉。

总体来说,无伤大雅,就是有点烦人罢了。