Mybatis自动生成代码提示"Cannot obtain primary key"和“ The server time zone value '�' is unrecognized or ”解决方案

其实这两个问题我都有遇到,并且是用同一个方法解决了,我们来看看

第一个问题:在Eclipse中对Maven项目使用Mybatis自动生成代码,结果有下面的错误提示:

代码语言:javascript代码运行次数:0运行复制
Cannot obtain primary key information from the database,generated objects may be incomplete
翻译:无法从数据库中获取主键信息,生成的对象可能不完整

第二个问题:

代码语言:javascript代码运行次数:0运行复制
The server time zone value '�й���׼ʱ��' is unrecognized or represents more 
than one time zone. You must configure either the server or JDBC driver 
(via the serverTimezone configuration property) to use a more specifc time
 zone value if you want to utilize time zone support.

翻译:服务器时区值' й '无法识别或代表多个时区。 如果要使用时区支持,则必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)以使用更具体的时区值。

解决方案:

找到如下路径中的generatorConfig.xml文件

修改如下代码

代码语言:javascript代码运行次数:0运行复制
<!--数据库链接URL,用户名、密码 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
	connectionURL="jdbc:mysql://39.106.193.131:3306/carproject"
	userId="root" password="123456">
</jdbcConnection>

修改为

代码语言:javascript代码运行次数:0运行复制
<!--数据库链接URL,用户名、密码 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
	connectionURL="jdbc:mysql://39.106.193.131:3306/carproject?serverTimezone=UTC "
	userId="root" password="123456">
</jdbcConnection>

我的问题就是这样解决的

但如果你的数据库链接URL类似下面:

代码语言:javascript代码运行次数:0运行复制
jdbcUrl=jdbc:mysql://localhost:3306/spring?serverTimezone=UTC&characterEncoding=utf-8

就是有多个params的时候需要以&分开,但&要改为& 如下:

代码语言:javascript代码运行次数:0运行复制
jdbcUrl=jdbc:mysql://localhost:3306/spring?serverTimezone=UTC&amp;characterEncoding=utf-8
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-04-07,如有侵权请联系 cloudcommunity@tencent 删除mybatiskeytime解决方案数据库