mybatis插入数据报错:Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_general_c

mybatis 插入数据时报的错如下图:(需要navicat 系列的可视化工具)

1、百度出来的解决方法,首先是查询以下两个语句,确保字符集和排序规则正确:

(1)字符集:show variables like 'character_set_%';

 正常查出来是这个样子

修改语句:

set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_database=utf8;
set character_set_results=utf8;
set character_set_server=utf8;
set character_set_system=utf8;

(2)排序规则:show variables like 'collation_%';

修改语句:

set collation_connection=utf8_general_ci;
set collation_database=utf8_general_ci;
set collation_server=utf8_general_ci;


2、这些都修改好之后发现字段值有中文的还是报错,无中文的能保存进去,于是接着百度。

查看该表各字段的字符集:show create table 表名;

然后查看,查出来的建表语句:  可以看到user_name这个字段的字符集还是latin1,这就是问题所在。所以我们要把这个字段的字符集和排列规则修改一下。如图所示,修改后保存就可以正常用mybatis插入数据啦~(有可视化工具的用可视化工具直接改,比较直观。没有的就用语句操作也可以)

或者使用语句修改字段:

alter table user_info change user_name  user_name varchar(50) character set utf8;
alter table 表名 change 字段名  字段名 varchar(50) character set utf8;

 

希望能帮到大家~

所以说一开始建数据库,建表的时候,就要注意!数据库的、表的,字段的字符集和排序规则,不然还要花时间找问题!

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值