最近在项目中遇到了一个问题,就是做查询的时候,如果用户输入中文的话,明明数据库有这样的记录,却怎么也检索不到结果。作为调试的手段,我把hql语句打印出来,也没有发现什么问题,和预期的一样。甚是郁闷,后来,上网查了一下资料,原来是hibernate3对中文的支持不是太好,需要在hibernate的配置文件中添加一个属性,(这里使用了spring的IOC容器来注入)
<property name="hibernateProperties">
<props>
<prop key="hibernate.query.factory_class">
${hibernate.query.factory_class}<!--添加这个属性就可以了-->
</prop>
........................
</property>
org.hibernate.hql.classic.ClassicQueryTranslatorFactory
原因时hibernate在把hql转换成sql语句的时候,出现了乱码(如果有中文的话),按以上的配置的话,就没有什么问题了。还有一个方法就是,使用预编译的hql,然后动态绑定参数。不过这个方法是针对这一个函数本省而言的,如果你是使用Hibernate3而很多查询涉及中文的话,最好使用配置文件的方式,简单。
分享到:
相关推荐
解决Hibernate中文乱码问题通常可以从以下几个方面入手: 1. **客户端**:确保客户端发送的数据采用正确的字符编码。 2. **服务器端**:配置服务器端(如Servlet容器)的字符编码,使其与客户端保持一致。 3. **...
为了解决Hibernate中文乱码问题,我们需要从以下几个方面入手: 1. **配置文件设置**:确保Hibernate的配置文件(通常是`hibernate.cfg.xml`)中的数据库连接参数正确设置了字符集。例如,可以通过以下方式设置: ...
本文将深入探讨“hibernate+mysql乱码问题”的原因、解决方案以及如何预防这类问题。 首先,我们需要了解乱码问题的根源。在数据库层面,MySQL的编码格式对数据存储和检索至关重要。如果数据库、表或列的字符集不...
### 解决Struts2.1.6 + Spring + Hibernate 中文乱码问题 在Web开发过程中,特别是使用Java EE框架时,字符编码问题一直是开发者关注的重点之一。对于使用Struts2.1.6、Spring以及Hibernate这三个框架组合的项目而...
该项目是解决hibernate反向工程生成的实体文件中文备注乱码问题的。 试用环境 hibernate-version 4.0.1 Hibernate Tools 5.1.4.v20170413-1729 org.hibernate.eclipse.feature.feature.group JBoss by Red Hat ...
本文将详细介绍如何在使用Hibernate框架进行数据库操作时解决中文乱码问题,特别是针对MySQL数据库。 #### Hibernate与乱码问题概述 在Java开发中,Hibernate作为一种流行的ORM(Object Relational Mapping)框架...
综上所述,解决hibernate+mysql环境下中文存入数据库乱码的问题,需要从Web应用配置、数据库配置、框架配置以及文件编码等多个方面综合考虑,确保整个数据处理链路的字符集一致且支持UTF-8。只有这样,才能确保中文...
以下是解决hibernate与MySQL存储中文时出现乱码问题的详细步骤和相关知识点: 1. **配置Hibernate连接URL**: 在`hibernate.cfg.xml`配置文件中,需要正确设置连接URL以指定字符集。添加`useUnicode=true`和`...
ssh spring+stuts+hibernate+sql server 中文乱码解决方案_lj管用.txt
1. **解决`hbm.xml`中文注释乱码** 当我们在`hbm.xml`文件中添加中文注释,如果没有正确配置编码,很可能会出现乱码。解决这个问题的关键在于确保整个开发环境的一致性,包括IDE的编码设置、项目的编码设置以及`...
### Hibernate与MySQL中文乱码问题解析及解决方案 #### 一、问题概述 在使用Hibernate框架进行Java应用程序开发的过程中,尤其是在连接MySQL数据库时,经常会遇到中文显示乱码的问题。这一问题通常发生在从数据库...
### Hibernate中文问题解决方案 在开发基于Java的应用程序时,Hibernate作为一个强大的对象关系映射(ORM)框架被广泛采用。然而,在处理中文字符时,开发者可能会遇到各种各样的问题,如乱码显示等。本文将详细...
以上就是解决Hibernate3中文查询出错问题的主要步骤。在实际操作中,还需要根据具体的错误信息和环境进行排查,可能需要调整的配置不止一处。记得每次修改配置后都要重新运行测试,以确认问题是否已得到解决。希望...
本文将详细介绍如何解决64位系统下的SQL Server连接Oracle数据库时出现的中文乱码问题,并提供具体的配置步骤。 #### 一、背景介绍 当SQL Server尝试通过ODBC或JDBC等方式连接到Oracle数据库时,如果两个系统的...
本文将深入解析在使用Hibernate框架与MySQL数据库时遇到的中文乱码问题,以及如何解决这一问题。 首先,我们需要理解中文乱码出现的根本原因。当Java应用程序中的持久化类包含中文字符串,并通过Hibernate映射到...
### 二、Struts框架中的乱码解决方法 #### 1. JSP页面编码设置 - 在每个JSP页面的顶部添加以下声明语句,指定页面的编码格式为UTF-8: ```jsp ; charset=UTF-8" pageEncoding="UTF-8"%> ``` - 这样可以确保页面...
### SSH中文乱码解决方法 在开发过程中,经常会遇到字符编码的问题,特别是在处理中文字符时。本文主要介绍如何解决SSH框架中的中文乱码问题。针对不同的应用场景,我们可以通过以下几种方式来解决: #### 1. 强制...
在开发基于SSH(Struts2 + Spring + Hibernate)框架的应用程序时,经常会遇到中文乱码的问题。这些问题主要出现在两个方面:一是前端页面上中文字符显示不正常;二是向数据库(如Oracle)中插入包含中文的数据时...
在进行MySQL、JSP以及SSH(Struts、Spring、Hibernate)框架集成的网站开发时,中文乱码问题是一个常见的困扰。这通常是由于编码格式不一致、设置不当或处理方式错误导致的。以下是一些关键的知识点,可以帮助你解决...
总之,要解决Struts+Hibernate+MyEclipse+Tomcat+MySQL环境中的乱码问题,你需要检查并设置以上提到的所有环节的编码,确保它们统一为UTF-8。通过这种方法,可以有效地避免乱码的出现,从而提供良好的用户体验。在...