当mysql中不同数据库存在相同表时,Mybatis generator 生成实体类与指定数据库表不一致的时候,我第一次遇到是十分懵逼的,然后面向百度编程得出了结果,解决办法如下。
在 jdbcConnection 节点中添加一个<property name="nullCatalogMeansCurrent" value="true"/>属性。
至此Mybatis generator 生成实体类与指定数据库表不一致的问题得到解决。
以下是满足大部分要求的一个Mybatis generator(配合tk mabtis) 配置。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<properties resource="application.properties"/>
<context id="Mysql" targetRuntime="MyBatis3Simple"
defaultModelType="flat">
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<property name="javaFileEncoding" value="UTF-8"/>
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="com.fansmore.api.utils.BaseMapper"/>
</plugin>
<jdbcConnection
driverClass="${spring.datasource.driver-class-name}"
connectionURL="${spring.datasource.url}"
userId="${spring.datasource.username}"
password="${spring.datasource.password}">
<property name="nullCatalogMeansCurrent" value="true"/>
</jdbcConnection>
<javaModelGenerator
targetPackage="com.fansmore.api.pojo" targetProject="src/main/java"/>
<sqlMapGenerator targetPackage="mapper"
targetProject="src/main/resources"/>
<javaClientGenerator
targetPackage="com.fansmore.api.dao" targetProject="src/main/java"
type="XMLMAPPER"/>
<table tableName="tbl_task" domainObjectName="Task"/>
</context>
</generatorConfiguration>