您的位置:首页 > 编程语言 > Java开发

struts+hibernate+mysql HQL语句查询带中文的查询不出数据的解决方法

2012-12-08 10:59 671 查看
struts+hibernate+mysql HQL语句查询带中文的查询不出数据的解决方法

折腾了快半天的时间。怎么都查询不出数据。原因:编码转换乱码的问题。从hibernate传入mysql时中文乱码。

HQL语句:
String queryString = "from ViewKk where "

+ "overTime" + "<= ? and "+"amount"+">0 and overTime>'"

+GetTime.getStringDate4()+"' and areaName=:name order by overtime desc" ;
语句本身没有问题。一开始以为HQL语句有问题,我就把判断语句一个一个的测试发现overTime、amount都没问题,就areaName进行中文判断时就有问题了。我的情况如下:
jsp的Encoding为:GBK
Tomcat的Encoding为:GBK
数据库的Encoding为:GBK
还是无法查询出数据。最后在网上找到一前辈的方法,就能解决了。
方法如下:
打开hibernate的配置文件:hibernate.cfg.xml
然后找到:
<property name="connection.url">

jdbc:mysql://127.0.0.1:3306/GD

</property>
将其修改为:
<property name="connection.url">

jdbc:mysql://127.0.0.1:3306/GD?useUnicode=true&characterEncoding=gbk

</property>

[align=left]问题是解决了,但是为什么会出现这种情况就百思不得其解。忘高手能解惑。[/align]
[align=left]此文属转载非原创,转载的地方忘了。当时比较急,所以没留意。若有什么问题可留言。[/align]
[align=right]问题即可解决!2012年11月22日[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐