因为hibernate底层使用的是jdbc的技术,所以我参考了别人使用jdbc保存数据到mysql里面时解决乱码问题的方法!
首先要告诉数据库要插入的字符串的字符集,mysql 默认使用的字符集是 latin1。我要保存的字符串是 UTF-8 编码的(字符集是 Unicode),所以包含这个字段的表应该使用 UTF-8 编码。
这里有几种解决办法。
1、在建立数据库的时候指定数据库的字符集编码,这样,这个数据库的所有表都会默认使用数据库的字符集编码。如 create database foo charset utf8;
2、在建表的时候指定字符集编码。如 create table foo (id char(20)) charset utf8;
3、指定某一列使用的字符集编码。如create table foo (id char(20) charset utf8);
如果你有需要的话还可以指定字符排序的规则,也就是指定 collation,如 create database foo charset utf8 collate utf8_general_ci;
,同样也可以指定单独的表、列使用的 collation 规则。
然后在使用 jdbc 连接数据库的时候要告知 jdbc 使用什么字符集编码来跟服务器通信。很简单,只需要在 jdbc 指定数据库路径时做一点修改就可以了。比如,jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf8
。注意如果在 XML 文件里面的话 “&” 要改成 “&”。
完整的写法:jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF-8
在hibernate的配置文件里面修改代码如下:
<property name="connection.url"> jdbc:mysql://127.0.0.1:3306/hello?useUnicode=true&characterEncoding=UTF-8 </property>
如果你使用的是 gbk 编码的话把上面所有提到utf8 的地方改成gbk 应该就可以了,只要服务器和客户端使用的字符集编码统一就可以了。
以下这个是使用 mysql的【命令行】来完成插入的。
mysql 命令行客户端默认使用的字符集也是 latin1,如果你通过这个来插入中文的话也会出现乱码的情况。解决的办法是执行语句 set names 'utf8'
来告诉服务器使用 UTF-8 编码来和客户端通信。你也可以使用 set charset 'utf8'
,它和 set names 区别只在于 collation 上。set names 和 set charset 都相当于执行了三条语句,具体的内容可以去看 mysql 文档 10.4 节。我想这个方法在使用 jdbc 的时候也是可以的,所以如果 jdbc 的指定数据库地址中没有告知使用的字符集编码的话可以通过执行上面的语句来达到相同的效果。
相关推荐
解决hibernate与MySql存储中文时出现乱码问题
使用java的SSH+Mysql时出现插入数据乱码还有查询也出现乱码问题
Hibernate_MySQL中文乱码问题.docHibernate_MySQL中文乱码问题.doc
hibernate+mysql 中文存入数据库乱码解决方法
Struts Hibernate MyEclipse Tomcat MySQL JSP 乱码 编码出错 内码设定
如果持久化的类中有包括了汉字的String对象,那么对应到数据库中汉字的部分就会是乱码。这主要是由于MySQL数据表的字符集与我们当前使用的本地字符集不相同造成的
java+mysql 乱码 SSH hibernate设置+mysql设置
打印sql语句还是中文 到数据库发现乱码,本以为是hibernate搞的,结果证明不是hibernate 自己也是网上解决办法 自己的问题解决了 希望能帮助其他人 运行命令:SHOW VARIABLES LIKE 'character_set_%'; 结果如下 '...
学生管理系统(Struts Hibernate mysql)无乱码问题。内附数据库文件,直接导入即可用。lib分成两个包lib1,lib2单独下载.把两个包一起搞到lib下即可。 这个是lib1包。你还要下载 学生管理系统(Struts Hibernate ...
显示界面,JSP 2.0 JAVA容器:Tomcat 5.X MVC构架:Struts 1.2 ORM工具:Hibernate 3 数据库:MySQL 5.0 编译IDE:MyEclipse 5.0
linux 系统下mysql中文乱码问题的解决方案 1、在命令行中输入alter database 数据库名 default character set utf8; 设置字符编码方式 2、 set names utf8; 设置显示方式 3 、jdbc中url的路径后跟上?useUnicode=true...
学生管理系统(Struts Hibernate mysql)无乱码问题。内附数据库文件,直接导入即可用。lib分成两个包lib1,lib2单独下载.把两个包一起搞到lib下即可。 这个是lib2包。你还要下载 学生管理系统(Struts Hibernate ...
”connection.useUnicode”>true</property> ”connection.characterEncoding”>UTF-8</property> mysql 的驱动用3.0.15以上版本的, 加个Filter, 使用UTF-8字符集就可以了, 若使用Spring则写在spring中的...
不会让大家后悔,里面介绍了连接池,dbutils的应用,struts-hibernate-sprint结合开发的实例详解,用的是sql server数据库,也可以改为mysql oracle只要改变数据库连接驱动和url即可。
学生管理系统(Struts Hibernate mysql)无乱码问题。内附数据库文件,直接导入即可用。lib分成两个包lib1,lib2单独下载.把两个包一起搞到lib下即可。我看到很多朋友只下载lib包,这个才是源码包。
开发过程中总避免不了遇到恶心的乱码,或者由乱码引发的一系列问题。... 交代背景: 要实现的功能很简单,用dom4J读取XML文件然后借助Spring以及Hibernate将数据写入到MySql数据库(多表)中,当然整个过程是由Spring
如果上面5步都没问题,你就不存在中文乱码问题。 ====================================================== 数据库使用的是MySQL,其版本为5.0.45 版本。 数据库的用户名及密码均为root。 使用的时候,请参考附件...
如果上面5步都没问题,你就不存在中文乱码问题。 ====================================================== 数据库使用的是MySQL,其版本为5.0.45 版本。 数据库的用户名及密码均为root。 使用的时候,请参考附件...
Struts2+Spring2+Hibernate3整合的例子,含mysql数据库,解决了关于utf-8中文乱码问题