引用
原本我的写法:
Query repeatClientQuery=querysession.createQuery(
"from ClientInfo as a "+"where a.client_name like
:name" );
repeatClientQuery.setParameter("name",clientname);
查询无结果.LIKE 'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。
LIKE '%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。LIKE '%en%' 将搜索在任何位置包含字母 en 的所有字符串
(如 Bennet、Green、McBadden)。
LIKE '_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称
(如 Cheryl、Sheryl)。LIKE '[CK]ars[eo]n'
将搜索下列字符串:
Carsen、Karsen、Carson 和 Karson(如 Carson)。LIKE '[M-Z]inger'
将搜索以字符串 inger 结尾、以从M到Z的任何单个字母开头的所有名称如 。
LIKE 'M[^c]%' 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称
(如 MacFeather)。
直接写String sql = "from ClientInfo as a where a.client_name like '%"+ clientname+"%'");
Query repeatClientQuery=querysession.createQuery(sql);
成功.但是却不能查询中文,假如clientname是客户1名字的话,那么将查不到结构,
解决办法:1.用占位符:
Query query = session
.createQuery("select count(*)
from Privilege p where p.name like ?");
query.setString(0, "%" + name + "%");//
注意这里不能写成setString(0," '%" + name + "%' ";
否则查不出来结果,不能加‘单引号2.修改查询编译器:
Hibernate3.0 采用新的基于ANTLR的HQL/SQL查询翻译器,
在Hibernate的配置文件中,hibernate.query.factory_class
属性用来选择查询翻译器。
(1)选择Hibernate3.0的查询翻译器:
hibernate.query.factory_class=
org.hibernate.hql.ast.ASTQueryTranslatorFactory
(2)选择Hibernate2.1的查询翻译器hibernate.query.factory_class=
org.hibernate.hql.classic.ClassicQueryTranslatorFactory
为了使用3.0的批量更新和删除功能,只能选择
(1)否则不能解释批量更新的语句,当使用的时候出现了不支持条件输入中文的情况。
选择
(2)可以支持输入中文,但没法解释批量更新语句了。
分享到:
相关推荐
当不与Spring框架结合使用时,Hibernate支持在HQL中直接使用中文字符进行模糊匹配,如`hql = "Select user From Userinfo user where user.username like '%用户名 5%'"`。但在Spring环境下,通常需要使用占位符`...
【Hibernate Criteria 用法详解】 Hibernate Criteria API 是一种面向对象的查询方式,它提供了一种比HQL(Hibernate Query Language)更为简洁且直观的查询手段。通过Criteria API,开发者可以构建复杂的查询条件...
3. **HQL 和 Criteria 查询**:Hibernate 提供了自己的 SQL-like 查询语言 HQL,以及 Criteria API,方便编写动态查询。 4. **缓存机制**:Hibernate 内置了第一级和第二级缓存,提高数据访问性能。 5. **延迟加载...
- Session的save()、saveOrUpdate()、update()和merge()方法:分别用于持久化新对象、更新已有对象、检查对象状态并更新以及合并临时状态的对象。 - Session的get()和load()方法:用于根据主键获取对象,load()...
要开始使用Criteria,你需要在Hibernate的Session中调用`createCriteria()`方法,传入你想查询的实体类的Class对象。例如,如果你要查询Person实体,你会这样做: ```java Criteria c = session.createCriteria...
在上面的代码中,我们首先创建了一个 Criteria 对象,然后使用 `Restrictions.like()` 方法创建了一个条件对象,最后使用 `add()` 方法将条件添加到 Criteria 对象中,并使用 `list()` 方法来获取查询结果。...
Criteria还支持更复杂的条件组合,如and()和or()方法,以及直接使用SQL表达式的sql()方法。 2. HQL(Hibernate Query Language): HQL是一种面向对象的查询语言,类似于SQL,但它是针对对象而不是表格。例如,...
### Hibernate Criteria 使用方法详解 #### 一、简介 Hibernate 是一款非常流行的 Java 持久层框架,它简化了对象关系映射(ORM)过程中的许多复杂性。在 Hibernate 中,Criteria API 提供了一种类型安全的方式来...
传统的SQL LIKE操作在面对大量数据时,可能会对数据库性能造成严重压力,而Hibernate Search通过构建索引,显著减轻了这种负担。 Hibernate Search的关键特性包括: 1. **Lucene集成**:利用Lucene的强大功能,提供...
在探讨“hibernate过滤器使用例子”这一主题时,我们深入分析了如何在Hibernate框架中运用过滤器功能,以及如何结合分页技术优化数据查询效率。以下将详细阐述相关知识点,包括过滤器的基本概念、配置方法、源码解析...
- 掌握Hibernate ORM的基本用法。 - 分析`orm`模块,了解实体与索引之间的映射关系。 - 研究`engine`和`backend`,理解索引的生命周期管理和查询执行流程。 - 实践编写示例应用,调试源码以加深理解。 总的来说,...
### Hibernate 课件_HQL 知识点解析 #### HQL查询 ...这些知识点涵盖了HQL的基本概念、查询方法、各种高级查询技巧以及Session的管理等方面,希望能够帮助大家更好地理解和掌握Hibernate的HQL查询技术。
Hibernate Query Language(HQL)是Hibernate框架中用于操作对象关系映射(ORM)的一种查询语言。它是面向对象的,设计目的是让开发人员可以使用对象而不是数据库表进行查询,从而简化了与数据库交互的过程。HQL的...
- **使用 HQL**:通过 Hibernate 查询语言 (HQL) 实现删除操作。 - **示例代码**: ```java public void delete(String id) { String hql = "DELETE Person WHERE id = ?"; Query q = this.session.createQuery...
在Hibernate中,我们可以使用`Criteria`或`Query`对象的`setFirstResult()`和`setMaxResults()`方法来实现分页。假设每页显示10条记录,获取第二页的数据可以这样写: ```java int pageSize = 10; int currentPage ...
通过以上步骤,我们可以有效地使用 Hibernate 进行数据的增删查改操作,并确保数据的一致性和事务的安全性。在 J2EE 环境下,Hibernate 提供了强大的持久化层支持,使得开发者能够专注于业务逻辑的实现,而无需过多...
一种简便的方法是使用Eclipse插件`Hibernate Synchronizer`来生成此文件: - **安装Hibernate Synchronizer**:这是一个Eclipse插件,可以从Eclipse Marketplace或官方站点下载并安装。 - **生成配置文件**: - ...
除了内置的 `Criterion` 类型,Hibernate 还允许使用原生的 SQL 语句作为查询条件。例如,如果需要根据小写的名字进行模糊匹配,可以使用: ```java List<Cat> cats = sess.createCriteria(Cat.class) .add...