背景:mybatis-generator将数据库中的表快速生成实体类和mapper文件
数据库:MySQL
需求:将mybatisdemo数据库下的user表快速生成实体类;
出现问题:mybatis-generator直接将mybatisdemo数据库下的user表和mysql数据库(MySQL自带的数据库)下的user表同时生成了实体类;即数据库A与B都有表名为T的表同时生成了两个实体类,显然与需求不符。
解决方法:在generatorConfig.xml配置文件中的table元素中加入catalog属性(数据库名):
<table tableName="user" catalog="mybatisdemo" domainObjectName="User" delimitIdentifiers="true">
<generatedKey column="id" sqlStatement="JDBC" />
</table>
以上方法却会出现一个新的问题:生成实体类和mapper文件、mapper接口的时候会增加一级目录;
未加catalog属性:
加了catalog属性后:
显然,这也不是我想要的结果,如果有那个大神知道如何解决,还请不吝赐教,敬请留言,谢谢!
当然,还有一种方法就是更改表名,让其在数据库中名称是唯一的。显然也不是我理想的解决方案。
注:该问题已解决,依旧使用catlog属性,同时在table标签中加入property name=“ignoreQualifiersAtRuntime” value=“true” :
<table tableName="user" catalog="mybatisdemo" domainObjectName="User" delimitIdentifiers="true">
<!-- <property name="useActualColumnNames" value="true" /> -->
<property name="ignoreQualifiersAtRuntime" value="true"/>
<generatedKey column="id" sqlStatement="JDBC" />
</table>