3、条件查询【重要】
* 可以采用拼字符串的方式传递参数
* 可以采用 ?来传递参数(索引从0开始)
* 可以采用 :参数名 来传递参数
* 如果传递多个参数,可以采用setParamterList方法
* 在hql中可以使用数据库的函数,如:date_format
参见:SimpleConditionQueryTest.java
- ================================================================
- A:
-
-
Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.namelike'%1%'").list();
-
for(Iteratoriter=students.iterator();iter.hasNext();){
- Object[]obj=(Object[])iter.next();
-
System.out.println(obj[0]+","+obj[1]);
- }
- =============================================================
- B.
-
Queryquery=session.createQuery("selects.id,s.namefromStudentswheres.namelike?");
-
-
-
-
-
-
-
Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.namelike?")
-
.setParameter(0,"%1%")
- .list();
- =============================================================
- C
-
-
Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.namelike:myname")
-
.setParameter("myname","%1%")
- .list();
-
for(Iteratoriter=students.iterator();iter.hasNext();){
- Object[]obj=(Object[])iter.next();
-
System.out.println(obj[0]+","+obj[1]);
- }
- ==============================================================
- D
-
-
Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.namelike:mynameands.id=:myid")
-
.setParameter("myname","%1%")
-
.setParameter("myid",12)
- .list();
- ===============================================================
- E
-
-
Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.idin(:myids)")
-
.setParameterList("myids",newObject[]{1,2,3,4,5})
- .list();
- ==================================================================
- F
-
-
Liststudents=session.createQuery("selects.id,s.namefromStudentswheredate_format(s.createTime,'%Y-%m')=?")
-
.setParameter(0,"2008-02")
- .list();
- ====================================================================
- G
-
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
-
-
Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.createTimebetween?and?")
-
.setParameter(0,sdf.parse("2008-01-1000:00:00"))
-
.setParameter(1,sdf.parse("2008-02-1523:59:59"))
- .list();
分享到:
相关推荐
在探讨NHibernate HQL条件查询时,我们首先要理解NHibernate框架以及HQL(Hibernate Query Language)的基本概念。NHibernate是一个开放源代码的对象关系映射(ORM)解决方案,它为.NET平台提供了一种将对象模型与...
### Hibernate HQL 关联查询详解 #### 一、引言 在进行数据库操作时,关联查询是必不可少的一部分,尤其在处理复杂的数据结构时更是如此。Hibernate作为一种流行的Java持久层框架,提供了强大的对象关系映射(ORM...
二、HQL条件查询 HQL支持多种条件查询,包括等于、不等于、大于、小于等操作符。如查询所有年龄大于20岁的用户: ```java String hql = "from User where age > 20"; ``` 同时,HQL还支持like、in、between等特殊...
这种方式将查询条件直接拼接到HQL字符串中,虽然看起来更为简洁,但在安全性方面可能存在隐患,因为这容易导致SQL注入攻击。因此,在实际开发中应尽量避免直接拼接字符串的方式,而是采用参数绑定的方式。 ### 示例...
### HQL查询及语法详解 #### 一、HQL简介 HQL,全称为Hibernate Query Language,是Hibernate框架提供的一种面向对象的查询语言。它基于SQL标准,但更加强调对象模型,支持Java中的对象关系映射(ORM),能够处理...
在IT领域,特别是数据库操作与查询中,HQL(Hibernate Query Language)作为一种强大的查询语言,被广泛应用于基于Hibernate框架的数据访问层。HQL允许开发者使用类似SQL的语法进行数据库操作,但更贴近于面向对象的...
HQL也支持`WHERE`子句,用于添加过滤条件。例如: ```java String hql = "FROM User user WHERE user.age = 20"; ``` HQL支持多种表达式和操作符,包括但不限于`BETWEEN`、`IN`、`IS NULL`、`LIKE`等,这使得HQL...
在第一个示例中,我们看到一个名为 `findPerson` 的方法,该方法执行了一个 HQL 查询来查找满足特定条件的人。这里的 HQL 语句为: ```java "from syidt.modules.grp.basegrp.persistence.Person as person where ...
**二、HQL条件查询** 1. **比较运算符**:`=`, `!=`, `, `>`, `, `>=`用于比较,如`WHERE e.age > 30`。 2. **逻辑运算符**:`AND`, `OR`, `NOT`用于组合多个条件,如`WHERE e.age > 30 AND e.salary 。 3. **...
HQL模糊查询是开发者在进行数据检索时常用的一种功能,它允许我们根据部分关键词或者通配符来查找匹配的数据。下面我们将深入探讨Hibernate的HQL模糊查询及其应用。 一、HQL概述 HQL是一种面向对象的查询语言,它的...
HQL支持各种比较和逻辑操作符,如`=`、`<>`、`>`、`、`>=`、`、`between`、`not between`、`in`、`not in`、`is`、`like`等,用于构建复杂的查询条件。 示例: - `from DomesticCat cat where cat.name between 'A'...
这对于简单的条件查询非常有用。 **示例代码**: ```java List<User> userList = this.getHibernateTemplate().find("from bean.User u where u.name=?", "test"); ``` 或进行模糊查询: ```java List<User> user...
条件查询 如果想要查询书名中包含 “c#” 的所有书籍,可以使用如下 HQL 语句: ```java String hql = "select b.title, b.price from Books b where b.title like '%c#%'"; Query query = session.createQuery...
- **WHERE条件查询**: - **等于**: ```hql SELECT obj FROM TableName obj WHERE obj.column1 = value; ``` - **不等于**: ```hql SELECT obj FROM TableName obj WHERE obj.column1 <> value; ``` - **...
与传统的SQL语言不同,HQL更加注重于面向对象的特性,它支持Java类名和属性名作为查询条件,使得开发者可以直接使用Java对象模型来编写查询语句,而不需要了解底层数据库的具体表结构。HQL的这种特性大大提高了代码...
它提供了灵活多样的查询机制,包括导航对象图、通过标识符检索、使用 HQL 检索对象、使用 Hibernate 条件 API 和使用本地 SQL 查询等。 在 Hibernate 中检索对象的各种方法: 1. 导航对象图:通过对象的关联关系,...
WHERE子句用于设置查询条件,支持比较运算符(=, !=, <, >, , >=)、逻辑运算符(AND, OR, NOT)以及空值判断(IS NULL, IS NOT NULL)。例如: ```sql SELECT p FROM Product p WHERE p.status = 'active' AND p....
QBC中的运算符与HQL中的对应,例如,通过调用对象的`eq()`、`gt()`等方法来设置查询条件。 在实际应用中,HQL通常用于构造复杂的、面向对象的查询,而QBC则更适合于简单的查询或者基于对象实例的查询。开发者可以...