关于使用Mybatis逆向工程针对Oracle数据库表生成代码需要注意的问题

来源:互联网 发布:淘宝上买的司考视频 编辑:程序博客网 时间:2024/05/18 00:10

在使用Mybatis逆向工程针对Oracle数据库表生成代码时需要注意,如果指定的oracle数据库下的多个表空间存在同一张表时,必须要指定schema的值,否则要出现生成的代码和Mapper.xml文件中出现重复的代码和配置,然后导致项目在启动时出现以下错误:

Caused by: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.tyky.mapper.TSysUserMapper.BaseResultMap

此错误是说明在逆向工程生成的xxxMapper.xml文件中出现了多个<resultMap id="BaseResultMap" type="xxx" >,正常情况下一个mapper.xml文件中只会出现一个<resultMap id="BaseResultMap" type="xxx" >标签。

要避免此错误的产生,需要在Mybatis逆向工程的generatorConfig.xml中配置指定要生成代码的table时使用以下配置:

<!-- 指定数据库表 -->
<table schema="dzjc_zhejiang" tableName="t_sys_user"></table>   

其中的 schema="dzjc_zhejiang"就是指定oralce的表空间,避免其他表空间下有同名的表时对逆向工程生成的代码产生干扰。


另,如果项目启动过程中报以下错误:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

解决方法:在maven工程下的pom.xml中添加以下配置:

<!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。 -->
    <build>  
        <resources>  
            <resource>  
                <directory>src/main/java</directory>  
                <includes>  
                    <include>**/*.properties</include>  
                    <include>**/*.xml</include>  
                </includes>  
                <filtering>false</filtering>  
            </resource>  
        </resources>  
    </build>



阅读全文
0 0
原创粉丝点击