CREATE TABLE t_user
(
id INT(20) PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(20),
age INT(20),
desc_ VARCHAR(230),
photo TEXT
) DEFAULT CHARACTER SET utf8; 这里设置默认字符编码
使用hibernate框架后,从在class中执行的添加数据,取出为乱码。该怎么解决?
在使用c3p0的连接数据库时可以用这句话
jdbc:mysql://localhost:3306/test?characterEncoding=utf8
但是hibernate 中无法使用并且没有相关属性,网上看有说设置useEnicode 为 true
character =utf-8 这两个属性,试了一下,不行。添加数据是直接报jdbc连接异常。
并且没有在属性提示中找到这两个属性。
搞的那么麻烦干嘛,只要控制表是utf8就行了,数据库是不是UTF8有什么关系呢。
创建表时我做了 默认设置字符为UTF-8 还是不可以
这个问题是因为我在mysql安装的时候,选择编码的时候没有选择utf-8 ,在java群友的帮助下找到了解决的办法。
在mysql 的安装目录bin 下的MysqlInstanceConfig.exe 可以覆盖以前安装的选项,在编码那里选择UFT-8就好了。
覆盖之前mysql 的编码 character_set_database = latin
character_set_server = latin
覆盖之后mysql 的编码 character_set_database = UTF-8
character_set_server = UTF-8