Hibernate + MySQL中文乱码问题

时间:2023-03-08 22:05:55

如果持久化的类中有包括了汉字的String对象,那么对应到数据库中汉字的部分就会是乱码。这主要是由于MySQL数据表的字符集与我们当前使用的本地字符集不相同造成的。

如果是windows系统,那么系统默认的本地字符集是gb2312,为了让数据表也使用gb2312字符集,我们要以这样编写创建数据表的SQL语句:

CREATE TABLE TEST
{
...
...
...
}default character set gb2312;

然后在hibernate.cfg.xml中加上:

<property name="connection.characterEncoding">gb2312</property>

如果是linux系统,则只需要把上面的gb2312改成UTF8即可。