hibernate.cfg.xml在<session-factory>和</session-factory>之间加入这么一段: 
        <property name="connection.useUnicode">true</property>
        <property name="connection.characterEncoding">UTF-8</property>

这样一来,是可以解决乱码问题。
但是如果你用一些数据库管理器,看见的中文数据都是乱码!因为它存进去的是Unicode
也就是说,在这种解决方法下的MySQL中的数据只能针对Hibernate使用,如果这个数据库并非只针对Hibernate而设计,还有其他的系统在用这这个数据库,甚至有可能这个系统都不是使用java编写的。那么这个系统所能看见的只有乱码了。

有没有更好的解决方法呢?

我能想到的就是不用Mysql!

但是这肯定不是最终的解决办法。