如果用JPA自動生成表的時候案疲,創(chuàng)建的數(shù)據(jù)庫沒有指定編碼格式(默認編碼格式latin1
)扛拨,那么mysql對中文并不支持。比如插入中文的數(shù)據(jù)葱弟,可能會報錯:
Error Code: 1366. Incorrect string value: ..........
一般在創(chuàng)建數(shù)據(jù)庫的時候即可修改數(shù)據(jù)庫編碼為utf8壹店,然后用JPA自動生成的數(shù)據(jù)庫表會自動設(shè)置為編碼utf8格式來支持中文,如果沒有給數(shù)據(jù)庫指定編碼格式就用JPA 自動生成了表芝加,就需要修改數(shù)據(jù)庫硅卢、表及字段的編碼格式為utf8來支持中文。
1.查看數(shù)據(jù)庫編碼
use <數(shù)據(jù)庫名>;
show variables like 'character_set_database';
一般數(shù)據(jù)庫的編碼要支持中文的話用utf8即可藏杖,下面修改數(shù)據(jù)庫編碼:
alter database <數(shù)據(jù)庫名> CHARACTER SET utf8;
2.查看數(shù)據(jù)表編碼
show create table <表名>;
修改數(shù)據(jù)表編碼
alter table <表名> character set utf8;
修改字段編碼
alter table <表名> change <字段名> <字段名> <類型> character set utf8;
最后幫朋友打個小廣告