项目中要用到模糊查询,我想到了like,但是项目用的是hibernate,查询语句都是拼接出来的,不能直接用like % ? %的形式,需要拼接字符串,并对 ? 中的字符进行特殊处理(escaped),否则查询中还可能出现问题。只针对(名字、编号这类字符数据)
hql.append(" and u.userName like ?");
v.add("%" + Utils.escapeSearchWord(user.getUserName().trim()) + "%");
public static String escapeSearchWord(String str) {
if ("AND".equals(str) || "OR".equals(str) || "NOT".equals(str)) {
str = '\\' + str;
}
StringBuffer sb = new StringBuffer();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
// These characters are part of the query syntax and must be escaped
if (c == '_') {
sb.append('\\');
}
sb.append(c);
}
return sb.toString();
}
分享到:
相关推荐
【Hibernate Criteria 用法详解】 Hibernate Criteria API 是一种面向对象的查询方式,它提供了一种比HQL(Hibernate Query Language)更为简洁且直观的查询手段。通过Criteria API,开发者可以构建复杂的查询条件...
Hibernate 中 Criteria 的用法 Hibernate 中 Criteria 的用法是 Hibernate 框架中的一种查询机制,它提供了灵活的查询方式,可以根据不同的条件进行查询。Criteria 查询机制主要包括 QBE(Query By Example)、QBC...
以下是对Criteria用法的详细说明: 1. **创建Criteria实例**: 要开始使用Criteria,你需要在Hibernate的Session中调用`createCriteria()`方法,传入你想查询的实体类的Class对象。例如,如果你要查询Person实体,...
QBE是Criteria API的一个简单用法,通过一个实体对象作为模板来匹配数据库中的记录。例如,在`Student`类的上下文中,如果有一个名为`s`的学生对象,其`giftortoy`字段被设置为"2",那么调用`cri.add(Example....
通过这个项目,你不仅可以了解Hibernate的基本用法,还能深入理解如何在实际项目中应用这些知识,提升数据库操作的效率和代码的可维护性。在学习过程中,建议结合具体代码逐个实践,加深理解和记忆。
### Hibernate中Criteria的完整用法 #### 一、概述 在Java开发中,尤其是在使用ORM框架Hibernate时,Criteria API提供了一种非常灵活的方式来构建复杂的查询。本文将详细介绍Hibernate中的Criteria API及其子类...
- 掌握Hibernate ORM的基本用法。 - 分析`orm`模块,了解实体与索引之间的映射关系。 - 研究`engine`和`backend`,理解索引的生命周期管理和查询执行流程。 - 实践编写示例应用,调试源码以加深理解。 总的来说,...
(A mapping like this allows you to map extra columns of a many-to-many association table to the composite element class.) 接下来的的例子是从Order到Item的一个多对多的关联关系, 关联属性是 purchaseDate, ...
=)、逻辑操作符(AND、OR、NOT)以及IN、BETWEEN、LIKE等。 5. **函数与运算符** - 支持数学函数(如SUM、AVG、COUNT、MAX、MIN)和字符串函数(如UPPER、LOWER、SUBSTRING)。 - 使用AS进行别名定义,提高代码...
Hibernate Query Language(HQL)是Hibernate框架中...通过文档《HQL语法入门学习.doc》和《HQL语句大全.txt》,可以系统地了解和掌握HQL的各种用法,而《HQL》可能是实际的代码示例或进阶话题,进一步巩固理论知识。
本文将详细探讨这三种查询方式的区别与用法。 首先,Criteria查询是Hibernate提供的一种面向对象的查询方式,它通过构建对象化的查询条件来执行数据库查询。Criteria查询的优点在于其直观且可扩展性强。创建...
在Hibernate的Criteria API中,模糊查询主要通过`Restrictions.like()`方法来实现。该方法接受两个参数:字段名和包含通配符的字符串。 ##### 示例1:单字段模糊查询 ```java // 查找名字中包含“Erica”的用户 ...
Hibernate Query Language(HQL)是Hibernate官方推荐的查询语言,它是面向对象的,与SQL类似,但更加符合Java编程的思维。HQL使得开发者能够更方便地处理对象关系映射,而无需直接编写SQL语句。在使用HQL时,我们...
- `like(String propertyName, String value)`:模糊匹配。 - `in(String propertyName, Collection values)`:在指定集合内。 - `notIn(String propertyName, Collection values)`:不在指定集合内。 ### 3. 联合...
#### 三、Criteria API的基本用法 ##### 1. 创建Criteria实例 首先,需要创建一个`Criteria`实例,该实例是基于特定实体类的,例如: ```java Criteria cri = session.createCriteria(Student.class); ``` 这里...
本文将深入探讨HQL在查询映射对象及字段方面的基本用法。 1. 查询整个映射对象所有字段 在Hibernate中,我们可以通过简单的`from`关键字来查询整个映射对象的所有字段。以下是一个Java代码示例: ```java String ...