如果持久化的类中有包括了汉字的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即可。