`
xiushan
  • 浏览: 31345 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Hibernate 条件查询

阅读更多

3、条件查询【重要】   
    * 可以采用拼字符串的方式传递参数
    * 可以采用 ?来传递参数(索引从0开始)
    * 可以采用 :参数名 来传递参数
    * 如果传递多个参数,可以采用setParamterList方法
    * 在hql中可以使用数据库的函数,如:date_format
    参见:SimpleConditionQueryTest.java   

    ================================================================
    A:
    //可以拼字符串
                List students = session.createQuery("select s.id, s.name from Student s where s.name like '%1%'").list();
                for (Iterator iter=students.iterator(); iter.hasNext();) {
                    Object[] obj = (Object[])iter.next();
                    System.out.println(obj[0] + "," + obj[1]);
                }
    =============================================================
    B.
    Query query = session.createQuery("select s.id, s.name from Student s where s.name like ?");
    //            query.setParameter(0, "%1%");
    //            List students = query.list();
              
                //可以使用?方式传递参数
                //参数的索引从0开始
                //传递的参数值,不用单引号引起来
                //注意方法链编程
                List students = session.createQuery("select s.id, s.name from Student s where s.name like ?")
                                           .setParameter(0, "%1%")
                                           .list();
    =============================================================
    C
    //使用 :参数名称 的方式传递参数值
                List students = session.createQuery("select s.id, s.name from Student s where s.name like :myname")
                                           .setParameter("myname", "%1%")
                                           .list();
              
                for (Iterator iter=students.iterator(); iter.hasNext();) {
                    Object[] obj = (Object[])iter.next();
                    System.out.println(obj[0] + "," + obj[1]);
                }
    ==============================================================
    D
    //使用 :参数名称 的方式传递参数值
                List students = session.createQuery("select s.id, s.name from Student s where s.name like :myname and s.id=:myid")
                                           .setParameter("myname", "%1%")
                                           .setParameter("myid", 12)
                                           .list();
    ===============================================================
    E
    //支持in,需要使用setParameterList进行参数传递
                List students = session.createQuery("select s.id, s.name from Student s where s.id in(:myids)")
                                        .setParameterList("myids", new Object[]{1, 2, 3, 4, 5})
                                           .list();
    ==================================================================
    F
    //查询2008年2月创建的学生
                List students = session.createQuery("select s.id, s.name from Student s where date_format(s.createTime, '%Y-%m')=?")
                                        .setParameter(0, "2008-02")
                                           .list();
    ====================================================================
    G
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
              
                //查询2008-01-10到2008-02-15创建的学生
                List students = session.createQuery("select s.id, s.name from Student s where s.createTime between ? and ?")
                                        .setParameter(0, sdf.parse("2008-01-10 00:00:00"))
                                        .setParameter(1, sdf.parse("2008-02-15 23:59:59"))
                                           .list();

分享到:
评论

相关推荐

    Hibernate条件查询Criteria.doc

    Hibernate条件查询Criteria.docHibernate条件查询Criteria.doc

    Hibernate条件查询Criteria[参考].pdf

    Hibernate条件查询Criteria[参考].pdf

    Hibernate的查询方式

    ### Hibernate的查询方式详解 #### 引言 Hibernate作为Java领域中最流行的ORM(Object-Relational Mapping)框架之一,提供了一系列高效、灵活的查询机制,旨在桥接对象模型与关系数据库之间的鸿沟。本文将深入...

    Hibernate在查询条件中创建List集合

    本文将深入探讨如何在Hibernate中利用查询条件创建List集合,这在处理复杂的数据筛选和聚合时尤其有用。 首先,让我们理解在Hibernate中创建List集合的基本概念。List集合是Java集合框架的一部分,它可以存储有序且...

    hibernate 模糊查询 分页

    本篇文章将深入探讨如何使用Hibernate实现模糊查询和分页功能,这对于任何需要处理大量数据的应用程序来说都是至关重要的技能。 首先,让我们了解Hibernate的核心概念。Hibernate是一个开源的JPA(Java Persistence...

    hibernate中的查询方式

    ### Hibernate中的查询方式详解 #### 一、HQL查询(Hibernate Query Language) HQL是Hibernate提供的面向对象的查询语言,其语法与SQL相似但并非完全相同。HQL的一个显著优势在于它具有很好的跨数据库能力,这...

    springMVC+hibernate的条件查询加分页的demo

    在这个“springMVC+hibernate的条件查询加分页的demo”中,我们将探讨如何结合这两个框架实现动态的条件查询和分页功能。 首先,让我们了解一下SpringMVC中的条件查询。在SpringMVC中,通常通过Controller层接收...

    hibernate实现动态SQL查询

    本篇文章主要探讨如何利用Hibernate实现动态SQL查询,结合XML配置和FREEMARKER模板引擎来生成执行的SQL语句。 一、Hibernate简介 Hibernate作为一款强大的持久层框架,它简化了Java应用程序与数据库之间的交互。...

    通用的hibernate查询

    【hibernate查询详解】 Hibernate,作为一款强大的Java对象关系映射(ORM)框架,极大地简化了数据库操作。它允许开发者使用面向对象的方式来处理数据库,从而避免了传统的JDBC编码方式带来的复杂性。本篇文章将...

    Hibernate_query查询数据表中的一个字段.

    如果你希望在不打开Session的情况下构建查询条件,可以使用DetachedCriteria: ```java DetachedCriteria detached = DetachedCriteria.forClass(User.class); detached.setProjection(Projections.property(...

    Java_Hibernate QBC条件查询对比

    本篇文章将深入探讨Hibernate中的QBC(Query By Example)条件查询与传统的HQL(Hibernate Query Language)查询的对比,帮助开发者更好地理解和选择适合的查询方式。 QBC(Query By Example)是Hibernate提供的一...

    \Hibernate_query条件查询

    《Hibernate查询条件查询详解》 Hibernate作为Java领域中广受欢迎的对象关系映射(ORM)框架,极大地简化了数据库操作。其强大的查询能力是其核心功能之一。本篇将深入探讨Hibernate的条件查询,帮助开发者更好地...

    hibernate将本地SQL查询结果封装成对象

    对于复杂查询,可能涉及到多表联查,此时可以使用`addJoin()`方法指定JOIN条件,并通过`addScalar()`将每列映射到对应的属性: ```java query.addJoin("table2", "t2"); query.addScalar("t2.column1", Hibernate....

    Hibernate的MySql查询.rar

    Criteria API则提供了一种更加面向对象的查询方式,它允许我们构建查询条件并动态地组合它们。以下是如何使用Criteria API来获取所有用户: ```java Session session = HibernateUtil.getSessionFactory()....

    hibernate实现递归查询

    在查询数据库时,递归查询意味着我们查询一个记录,然后根据该记录的某些属性再查询其关联的记录,这个过程可能反复进行,直到满足某个终止条件。 在Hibernate中,我们可以利用HQL(Hibernate Query Language)或 ...

    hibernate自定义查询

    Criteria API是Hibernate提供的另一种查询方式,它提供了更加面向对象的API,可以动态构建查询条件。下面是一个使用Criteria API的例子: ```java Session session = sessionFactory.openSession(); Criteria ...

    Hibernate各种查询:联表查询 分页查询 位置参数查询(?) 占位符查询(冒号查询) 统计查询

    本篇文章将详细解析Hibernate中的几种主要查询方式,包括联表查询、分页查询、位置参数查询、占位符查询(冒号查询)以及统计查询,这些都是在实际开发中非常常见的需求。 首先,我们来看**联表查询**。在Hibernate...

    struts2+spring2+hibernate3注册查询搜索分页实例

    搜索功能通常涉及到条件查询,可以利用Hibernate3的Criteria API或者HQL动态构造查询语句,根据用户输入的关键词匹配数据库中的记录。搜索结果同样可以结合分页进行展示。 总的来说,这个"Struts2+Spring2+...

    hibernate creteria

    描述:hibernate 条件查询实例 知识点解析: ### Hibernate Criteria API:实现高效灵活的数据查询 #### 一、概述 Hibernate Criteria API 是一个强大的查询工具,允许开发者以面向对象的方式进行数据库查询。与...

    Hibernate的高级查询

    当我们需要进行更复杂的数据库查询时,Hibernate提供了丰富的高级查询功能,这正是“Hibernate的高级查询”这一主题的核心所在。 在Hibernate中,高级查询主要包括HQL(Hibernate Query Language)、Criteria API和...

Global site tag (gtag.js) - Google Analytics