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

【问题】

  使用MyBatis Generator生成器时,发现Mapper文件中出现字段与连接数据库不符,经过查找发现该表是其他数据库的同名表的字段。

 

【解决问题】

  在构造文件中,这里是generatorConfig.xml添加连接数据库参数 nullCatalogMeansCurrent=true

<jdbcConnection connectionURL="jdbc:mysql://服务器地址:端口号/数据库名?serverTimezone=GMT%2B8"
     driverClass="com.mysql.cj.jdbc.Driver" password="ahbcd0306" userId="xlj" >
    
    <property name="nullCatalogMeansCurrent" value="true"/>
 </jdbcConnection>

 

【注解】

  🤣这里通过两种方式可设置连接参数。第一种直接在数据库名后面加 "?参数name=参数value",第二种通过 property 标签设置参数name,value。

  😁MySql不能正确支持SQL目录和架构。如果 在MySql中运行 create schema 命令,它实际上会创建一个数据库 - 并且JDBC驱动程序将其作为目录报告回来。但是MySql语法不支持标准的catalog..table  SQL语法。因此,最好不要在生成器配置中指定目录或模式。只需指定表名并在JDBC URL中指定数据库即可。

如果您使用的是Connector / J的8.x版,您可能会注意到生成器尝试为MySql信息模式(sys,information_schema,performance_schema等)中的表生成代码。这可能不是您想要的!要禁用此行为,请将属性“nullCatalogMeansCurrent = true”添加到JDBC URL。

  

  😊有关时区 serverTimezone 说明参考(https://www.cnblogs.com/xqz0618/p/servertimezoneerror.html

 

posted @   茄子鱼  阅读(4991)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
欢迎阅读『MyBatis Generator 生成器把其他数据库的同名表生成下来的问题』
点击右上角即可分享
微信分享提示