如果用JPA自动生成表的时候,创建的数据库没有指定编码格式(默认编码格式latin1
),那么mysql对中文并不支持。比如插入中文的数据,可能会报错:
Error Code: 1366. Incorrect string value: ..........
一般在创建数据库的时候即可修改数据库编码为utf8,然后用JPA自动生成的数据库表会自动设置为编码utf8格式来支持中文,如果没有给数据库指定编码格式就用JPA 自动生成了表,就需要修改数据库、表及字段的编码格式为utf8来支持中文。
1.查看数据库编码
use <数据库名>;
show variables like 'character_set_database';
一般数据库的编码要支持中文的话用utf8即可,下面修改数据库编码:
alter database <数据库名> CHARACTER SET utf8;
2.查看数据表编码
show create table <表名>;
修改数据表编码
alter table <表名> character set utf8;
修改字段编码
alter table <表名> change <字段名> <字段名> <类型> character set utf8;
网友评论