前言
- 项目中使用poi做了一个读取excel文件数据并导入到数据库的简单的Java小程序。配置好在将项目需要的数据导入到本地数据库时,某一列字段发生的插入数据报错:
ERROR 1366 (HY000): Incorrect string value: ‘……’ for column ‘……’ at row X
报错信息还原
由于报错信息在公司内网,解决后在自己机器上复现了下,报错信息如下图。
原因记录
主要原因:字符集设置错误的问题。我插入的有中文,应该使用utf8字符集。
通过下列脚本查看数据库以及表的目前字符集。
show create database your_database_name;
show create table your_table_name;
可以看到我现在数据库和表都是latin1字符集。
show variables like 'character%';
解决方法
alter table your_table_name convert to character set utf8;
类似的有
alter table your_table_name character set utf8;
第一句能够解决问题,第二句却不可以。
我暂时还不知道是什么原因,等我研究以后再做说明。
小白新手一枚。代码有啥错误的话,请不要客气的回复指出Thanks(・ω・)ノ