MyBatis Generator 生成器把其他数据库的同名表生成下来的问题

转自大佬:https://blog.csdn.net/qq_40233736/article/details/83314596

MyBatis Generator : Table Configuration scheme.table matched more than one table

在使用生成器生成代码的时候遇到了这个错误, 现象就是某个类中出来了数据库表里面没有的字段,非常奇怪.

解决方法是在生成器的配置文件里的数据库连接地址(就是jdbcUrl)中添加这个参数:

nullCatalogMeansCurrent=true

大概就是这个样子:

<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
				connectionURL="jdbc:mysql://localhost:3306/security"
				userId="root"
				password="root">
	<!--MySQL 8.x 需要指定服务器的时区-->
	<property name="serverTimezone" value="UTC"/>
	<!--MySQL 不支持 schema 或者 catalog 所以需要添加这个-->
	<!--参考 : http://www.mybatis.org/generator/usage/mysql.html-->
	<property name="nullCatalogMeansCurrent" value="true"/>
</jdbcConnection>

这个问题是在找了很久没找到然后去官网看文章看到的

资料链接 : http://www.mybatis.org/generator/usage/mysql.html

示例项目: https://gitee.com/Sod-Momas/mybatis-generator-example.git

完整的 mybatisConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
  <!--
    驱动路径
    <classPathEntry location="C:\Users\Sod-Momas\.m2\repository\mysql\mysql-connector-java\8.0.12\mysql-connector-java-8.0.12.jar"/>
    -->
 
    <context id="MySLQ8_Context" targetRuntime="MyBatis3">
 
        <commentGenerator>
            <!--去除注释-->
            <property name="suppressAllComments" value="false"/>
            <!--注释中去除日期注释-->
            <property name="suppressDate" value="true"/>
            <!--注释中添加数据库字段备注注释-->
            <property name="addRemarkComments" value="true"/>
        </commentGenerator>
 
        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/test"
                        userId="root"
                        password="mysql8">
            <!--MySQL 8.x 需要指定服务器的时区-->
            <property name="serverTimezone" value="UTC"/>
            <!--MySQL 不支持 schema 或者 catalog 所以需要添加这个-->
            <!--参考 : http://www.mybatis.org/generator/usage/mysql.html-->
            <property name="nullCatalogMeansCurrent" value="true"/>
            <!-- MySQL8默认启用 SSL ,不关闭会有警告-->
            <property name="useSSL" value="false"/>
        </jdbcConnection>
 
 
        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
            NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
 
        <!-- targetProject:生成PO类的位置 -->
        <javaModelGenerator targetPackage="cc.momas.mgb.dto"
                            targetProject=".\src\main\java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
 
        <!-- targetProject:mapper映射文件生成的位置 -->
        <sqlMapGenerator targetPackage="cc.momas.mgb.mapper"
                         targetProject=".\src\main\resources">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
            <property name="trimStrings" value="true"/>
        </sqlMapGenerator>
 
        <!-- targetPackage:mapper接口生成的位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="cc.momas.mgb.mapper"
                             targetProject=".\src\main\java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>
 
        <!-- 指定数据库表 -->
        <table tableName="user" domainObjectName="User"/>
 
    </context>
</generatorConfiguration>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值