关于hibernate链接MySQL时,存储中文出现乱码

来源:互联网 时间:1970-01-01

         采用hibernate框架时,使用MySQL数据库存储数据时,存储中文数据时总会出现乱码问题。同样的乱码问题也在java使用sql语句对数据库表进行增加和修改时也会出现。看了很多牛人的博文,经过自己的尝试,总结出一些方法,如下:

        1:MySQL数据库默认存储的字符集是latin1,当然前提是你没有对MySQL的my.ini文件进行过修改。

        2:MySQL数据库区别于SqlServer的地方是,MySQL的每一列你都可以给他不同的字符集存储属性,所以就算你新建一个字符集规则是utf8的数据库,但是你存储到表里的中文数据可能还是乱码。别担心,你打开设计表,点击选项,把字符集修改为utf8、排序规则改成utf8_general_ci,这个时候存储中文就不会出错了。

       3:如果还出错,你们再进行这么一步,修改”jdbc:mysql://localhost/hibernate?useUnicode=true&characterEncoding=UTF-8“,当然如果你使用的其他字符集,比如gbk,latin1等,这个在java项目中,使用固定的数据库表时这么是没有问题的,是可以使用的,但是如果在hibernate配置文件的        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate?useUnicode=true&characterEncoding=UTF-8</property>这么写的话,它是会报错的。所以我们要对MySQL的my.ini文件进行修改。

      4:对MySQL安装目录下的my.ini文件进行修改:

            a. 如果知道MySQL安装在哪,就直接去安装的目录文件夹下去寻找my.ini文件。

                如果你忘了在MySQL安装在哪里,也没有关系,摁一下win键,或者点击开始,在”搜索文件和程序“中输入MySQL,会出现MySQL 5.5 Command Line Client这个MySQL的客户端,右键它选择属性,点击打开文件位置,然后你就会发现你进入了MySQL的安装目录的子目录文件夹下了,这时候逛逛几个文件夹,看看my.ini在哪里。

           b. 打开my.ini,点击编辑,选择查找,在查找框里输入default。

           c. 这个是表示默认引擎是INNODB

              这个表示默认字符集是utf8(这个是我改过的,之前默认的是latin1),

             这个表示默认端口号是3306,默认字符集是utf8(当然,你没有看错,这个也是我改过的,之前也是latin1)

          5:附上我配置hibernate成功的图片

第一次发帖,请多见谅!




相关阅读:
Top