您的位置:程序门 -> java -> j2ee / ejb / jms



spring+hibernate查询中文乱码问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


spring+hibernate查询中文乱码问题
发表于:2007-01-30 11:29:08 楼主
各位高手:
        我的工程是用的spring+hibernate,
        问题1、在使用like做模糊查询时,hql语句的执行会出现中文乱码问题;
        问题2、使用like查询并做分页时,最后一页会报错,错误如下:
        org.hibernate.exception.genericjdbcexception:   could   not   EXECute   query
org.hibernate.exception.sqlstateconverter.handlednonspecificexception(sqlstateconverter.java:82)
org.hibernate.exception.sqlstateconverter.convert(sqlstateconverter.java:70)
org.hibernate.exception.jdbcexceptionhelper.convert(jdbcexceptionhelper.java:43)
org.hibernate.loader.loader.dolist(loader.java:1596)
org.hibernate.loader.loader.list(loader.java:1577)
org.hibernate.loader.hql.queryloader.list(queryloader.java:395)
org.hibernate.hql.ast.querytranslatorimpl.list(querytranslatorimpl.java:271)
org.hibernate.impl.sessionimpl.list(sessionimpl.java:844)
org.hibernate.impl.queryimpl.list(queryimpl.java:74)
com.hzyg.hdfg.dao.impl.news.articleimpl.getnewslistbykeyword(articleimpl.java:98)
com.hzyg.hdfg.action.news.newssearchcontroller.handlerequest(newssearchcontroller.java:34)
org.springframework.web.servlet.mvc.simplecontrollerhandleradapter.handle(simplecontrollerhandleradapter.java:44)
org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:723)
org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:663)
org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:394)
org.springframework.web.servlet.frameworkservlet.doget(frameworkservlet.java:348)
javax.servlet.http.httpservlet.service(httpservlet.java:689)
javax.servlet.http.httpservlet.service(httpservlet.java:802)

请各位给看看,先谢了?
发表于:2007-01-30 13:08:361楼 得分:0
自已轻轻顶一下
发表于:2007-02-08 16:22:222楼 得分:0
将hql转换成sql语句在数据库的查询分析器中运行一下,看看是否会出错?
发表于:2007-02-08 16:30:583楼 得分:0
该回复于2007-12-28 11:58:04被管理员或版主删除
发表于:2007-02-14 19:21:224楼 得分:0
同样的问题,up
发表于:2007-02-26 15:07:205楼 得分:0
up
发表于:2007-02-26 15:09:596楼 得分:0
至少也应该把源代码贴出来看看吧
发表于:2007-02-26 15:10:387楼 得分:0
将hql转换的sql语句在查询分析器中运行,没有问题

我认为应该是hibernate的一个参数的问题,但我无法直接解决这个问题,走了个曲径解决了这个问题。
发表于:2007-02-26 15:15:178楼 得分:0
http://blog.csdn.net/iloveqing/archive/2006/07/17/932015.aspx
发表于:2007-02-26 15:32:379楼 得分:0
帮你顶!!
发表于:2007-02-26 15:42:2410楼 得分:0
该回复于2007-12-28 11:58:04被管理员或版主删除
发表于:2007-02-26 20:34:4011楼 得分:0
可以设置hibernate.query.factory_class为org.hibernate.hql.classic.classicquerytranslatorfactory
比如:
<bean   id= "sessionfactory "
class= "org.springframework.orm.hibernate3.localsessionfactorybean ">
<property   name= "datasource ">
<ref   bean= "datasource "   />
</property>
<property   name= "hibernateproperties ">
<props>
<prop   key= "hibernate.dialect ">
org.hibernate.dialect.oracle9dialect
</prop>
<prop   key= "hibernate.show_sql "> true </prop>
<prop   key= "hibernate.format_sql "> true </prop>
<prop   key= "hibernate.query.factory_class ">
org.hibernate.hql.classic.classicquerytranslatorfactory
</prop>
</props>
</property>
</bean>
希望能帮你解决!!
发表于:2007-02-27 14:11:2612楼 得分:0
我见过的是用hibernate传参查询就乱码,用hql就没有问题,后来根据需要都改成hql了
发表于:2007-03-01 17:34:2413楼 得分:0
第二个问题已经解决,不是程序的原因,是因为数据库里有手动添加的脏数据,删除脏数据后下常。
第一个问题按xiaoqi1985()   说的方法正在测试中
发表于:2007-03-03 13:29:4714楼 得分:0
把字符自动过滤一下   用filter
发表于:2007-03-03 15:47:0515楼 得分:0
楼上说的对,用filter过滤字符集试一试
发表于:2007-03-05 16:54:3016楼 得分:0
换hibernate3.1的包,3.0的对中文支持不好


快速检索

最新资讯
热门点击