上次测试使用hibernate,遇到了中文的乱码问题,今天在web中使用hibernate又遇到了乱码的问题。但是上次解决后没有把解决方案记录下来,今天重新上网搜索了一把。并将解决方案记录在下面便于以后再遇到时查看用。
Hibernate中配置Mysql数据库如下:
hibernate.dialect net.sf.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class org.gjt.mm.mysql.Driver
#hibernate.connection.driver_class com.mysql.jdbc.Driver
hibernate.connection.url jdbc:mysql://localhost:3306/test
hibernate.connection.username root
hibernate.connection.passwordpassword
在hibernate.commection.url的值后面加上字符串“?useUnicode=true&characterEncoding=GBK”就可以解决了。
即修改后的url为:
hibernate.connection.url jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=GBK
Hibernate还有一种配置文件是xml格式的,文件名为:hibernate.cfg.xml
在xml文件中配置MySql数据库的定义如下:
org.gjt.mm.mysql.Driver
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=GBK
root
password
net.sf.hibernate.dialect.MySQLDialect
4
true
注意由于在XML文件中&符号是转义符,因此需要对其进行转义。即使用&来代替。
JSP连接MYSQL数据库如果有中文存取的情况会出现乱码,网页上中文显示一堆“?“,
需要做如下改变
1. 连接串:
String mysqlDriver = "org.gjt.mm.mysql.Driver"; //数据库驱动,又作"com.mysql.jdbc.Driver"
String mysqlUrl = "jdbc:mysql://localhost:3306/bbs?useUnicode=true&characterEncoding=gb2312"; //数据库连接字串
String mysqlUser = "root"; //数据库用户名
String mysqlPsw = ""; //数据库密码
Class.forName("org.gjt.mm.mysql.Driver").newInstance(); //注册驱动
conn = DriverManager.getConnection(mysqlUrl,mysqlUser,mysqlPsw); //得到连接
2.请求对象设置:
将jsp的请求对象的字符集设置为支持中文
这中方法还没用过,先收藏起来,有空的时候研究一下。