`

HQL条件查询

阅读更多
3、条件查询【重要】
* 可以采用拼字符串的方式传递参数
* 可以采用 ?来传递参数(索引从0开始)
* 可以采用 :参数名 来传递参数
* 如果传递多个参数,可以采用setParamterList方法
* 在hql中可以使用数据库的函数,如:date_format
参见:SimpleConditionQueryTest.java
  1. ================================================================
  2. A:
  3. //可以拼字符串
  4. Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.namelike'%1%'").list();
  5. for(Iteratoriter=students.iterator();iter.hasNext();){
  6. Object[]obj=(Object[])iter.next();
  7. System.out.println(obj[0]+","+obj[1]);
  8. }
  9. =============================================================
  10. B.
  11. Queryquery=session.createQuery("selects.id,s.namefromStudentswheres.namelike?");
  12. //query.setParameter(0,"%1%");
  13. //Liststudents=query.list();
  14. //可以使用?方式传递参数
  15. //参数的索引从0开始
  16. //传递的参数值,不用单引号引起来
  17. //注意方法链编程
  18. Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.namelike?")
  19. .setParameter(0,"%1%")
  20. .list();
  21. =============================================================
  22. C
  23. //使用:参数名称的方式传递参数值
  24. Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.namelike:myname")
  25. .setParameter("myname","%1%")
  26. .list();
  27. for(Iteratoriter=students.iterator();iter.hasNext();){
  28. Object[]obj=(Object[])iter.next();
  29. System.out.println(obj[0]+","+obj[1]);
  30. }
  31. ==============================================================
  32. D
  33. //使用:参数名称的方式传递参数值
  34. Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.namelike:mynameands.id=:myid")
  35. .setParameter("myname","%1%")
  36. .setParameter("myid",12)
  37. .list();
  38. ===============================================================
  39. E
  40. //支持in,需要使用setParameterList进行参数传递
  41. Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.idin(:myids)")
  42. .setParameterList("myids",newObject[]{1,2,3,4,5})
  43. .list();
  44. ==================================================================
  45. F
  46. //查询2008年2月创建的学生
  47. Liststudents=session.createQuery("selects.id,s.namefromStudentswheredate_format(s.createTime,'%Y-%m')=?")
  48. .setParameter(0,"2008-02")
  49. .list();
  50. ====================================================================
  51. G
  52. SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
  53. //查询2008-01-10到2008-02-15创建的学生
  54. Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.createTimebetween?and?")
  55. .setParameter(0,sdf.parse("2008-01-1000:00:00"))
  56. .setParameter(1,sdf.parse("2008-02-1523:59:59"))
  57. .list();

分享到:
评论

相关推荐

    NHibernate HQL 条件查询

    在探讨NHibernate HQL条件查询时,我们首先要理解NHibernate框架以及HQL(Hibernate Query Language)的基本概念。NHibernate是一个开放源代码的对象关系映射(ORM)解决方案,它为.NET平台提供了一种将对象模型与...

    hibernateHQL关联查询

    ### Hibernate HQL 关联查询详解 #### 一、引言 在进行数据库操作时,关联查询是必不可少的一部分,尤其在处理复杂的数据结构时更是如此。Hibernate作为一种流行的Java持久层框架,提供了强大的对象关系映射(ORM...

    hibernate_hql.rar_HQL

    二、HQL条件查询 HQL支持多种条件查询,包括等于、不等于、大于、小于等操作符。如查询所有年龄大于20岁的用户: ```java String hql = "from User where age > 20"; ``` 同时,HQL还支持like、in、between等特殊...

    hql模糊查询hql模糊查询

    这种方式将查询条件直接拼接到HQL字符串中,虽然看起来更为简洁,但在安全性方面可能存在隐患,因为这容易导致SQL注入攻击。因此,在实际开发中应尽量避免直接拼接字符串的方式,而是采用参数绑定的方式。 ### 示例...

    HQL查询及语法

    ### HQL查询及语法详解 #### 一、HQL简介 HQL,全称为Hibernate Query Language,是Hibernate框架提供的一种面向对象的查询语言。它基于SQL标准,但更加强调对象模型,支持Java中的对象关系映射(ORM),能够处理...

    hql多表查询

    在IT领域,特别是数据库操作与查询中,HQL(Hibernate Query Language)作为一种强大的查询语言,被广泛应用于基于Hibernate框架的数据访问层。HQL允许开发者使用类似SQL的语法进行数据库操作,但更贴近于面向对象的...

    HQL查询pdf资料

    HQL也支持`WHERE`子句,用于添加过滤条件。例如: ```java String hql = "FROM User user WHERE user.age = 20"; ``` HQL支持多种表达式和操作符,包括但不限于`BETWEEN`、`IN`、`IS NULL`、`LIKE`等,这使得HQL...

    hibernate hql各类查询范例

    在第一个示例中,我们看到一个名为 `findPerson` 的方法,该方法执行了一个 HQL 查询来查找满足特定条件的人。这里的 HQL 语句为: ```java "from syidt.modules.grp.basegrp.persistence.Person as person where ...

    J2EE HQL语法大全

    **二、HQL条件查询** 1. **比较运算符**:`=`, `!=`, `, `>`, `, `>=`用于比较,如`WHERE e.age > 30`。 2. **逻辑运算符**:`AND`, `OR`, `NOT`用于组合多个条件,如`WHERE e.age > 30 AND e.salary 。 3. **...

    hibernate的HQL的模糊查询

    HQL模糊查询是开发者在进行数据检索时常用的一种功能,它允许我们根据部分关键词或者通配符来查找匹配的数据。下面我们将深入探讨Hibernate的HQL模糊查询及其应用。 一、HQL概述 HQL是一种面向对象的查询语言,它的...

    hql精点查询语句.doc

    HQL支持各种比较和逻辑操作符,如`=`、`<>`、`>`、`、`>=`、`、`between`、`not between`、`in`、`not in`、`is`、`like`等,用于构建复杂的查询条件。 示例: - `from DomesticCat cat where cat.name between 'A'...

    Spring中常用的hql查询方法

    这对于简单的条件查询非常有用。 **示例代码**: ```java List<User> userList = this.getHibernateTemplate().find("from bean.User u where u.name=?", "test"); ``` 或进行模糊查询: ```java List<User> user...

    hibernateHQL基本查询

    条件查询 如果想要查询书名中包含 “c#” 的所有书籍,可以使用如下 HQL 语句: ```java String hql = "select b.title, b.price from Books b where b.title like '%c#%'"; Query query = session.createQuery...

    hql语句查询

    - **WHERE条件查询**: - **等于**: ```hql SELECT obj FROM TableName obj WHERE obj.column1 = value; ``` - **不等于**: ```hql SELECT obj FROM TableName obj WHERE obj.column1 <> value; ``` - **...

    HQL是hibernate自己的一套查询

    与传统的SQL语言不同,HQL更加注重于面向对象的特性,它支持Java类名和属性名作为查询条件,使得开发者可以直接使用Java对象模型来编写查询语句,而不需要了解底层数据库的具体表结构。HQL的这种特性大大提高了代码...

    Hibernate查询语言HQL.PPT

    它提供了灵活多样的查询机制,包括导航对象图、通过标识符检索、使用 HQL 检索对象、使用 Hibernate 条件 API 和使用本地 SQL 查询等。 在 Hibernate 中检索对象的各种方法: 1. 导航对象图:通过对象的关联关系,...

    Hibernate之HQL查询

    WHERE子句用于设置查询条件,支持比较运算符(=, !=, <, >, , >=)、逻辑运算符(AND, OR, NOT)以及空值判断(IS NULL, IS NOT NULL)。例如: ```sql SELECT p FROM Product p WHERE p.status = 'active' AND p....

    HQL与QBC的查询条件.doc

    QBC中的运算符与HQL中的对应,例如,通过调用对象的`eq()`、`gt()`等方法来设置查询条件。 在实际应用中,HQL通常用于构造复杂的、面向对象的查询,而QBC则更适合于简单的查询或者基于对象实例的查询。开发者可以...

Global site tag (gtag.js) - Google Analytics