MyBatis逆向工程时Mapper.xml中生成多余字段问题解决
比如我们有Employee实体类、EmployeeMapper接口、EmployeeMapper.xml映射文件
Employee中明明只有employee_id,last_name,email,department_id的字段,而sql映射文件中缺出现了manager_id,first_name,commission_pct等等多余字段
原因:
逆向工程生成代码的过程中,不光会根据我们指定数据库mybatis中的表employees生成了代码,而且还根据系统自带的数据库performance_scheme下的employees表又生成了代码,两张表都叫employees,生成的代码都合并到了一起,导致了错误
解决方法一:修改逆向工程配置文件generatorConfig.xml
在逆向工程配置文件generatorConfig.xml中的
<!-- 逆向分析的表 -->
<!-- catalog:指定表所在的数据库名-->
<!-- tableName设置为*号,可以对应所有表,此时不写domainObjectName -->
<!-- domainObjectName属性指定生成出来的实体类的类名 -->
<table catalog="mybatis" tableName="employees" domainObjectName="Employee"/>
<table catalog="mybatis" tableName="departments" domainObjectName="Department"/>
但这个方法同时也会造成自动生成的文件的目录出现问题
还需要修改配置文件中相关的包名
解决方法二:修改我们要逆向工程自动生成的表的名字
修改我们要逆向工程自动生成的表的名字,使之不要与同一个数据库下的其他表的名字有所重复
<table tableName="employees_mybatis" domainObjectName="Employee"/>
<table tableName="departments_mybatis" domainObjectName="Department"/>