`
cuisuqiang
  • 浏览: 3962771 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
3feb66c0-2fb6-35ff-968a-5f5ec10ada43
Java研发技术指南
浏览量:3672139
社区版块
存档分类
最新评论

Hibernate的查询 HQL查询 参数,分页,分组

    博客分类:
  • SSH
阅读更多

增加参数为分两种,一中是占位符方式:

/**
 * 占位符参数
 */
@SuppressWarnings("unchecked")
public static void test4(){
	Session session = HibernateSessionFactory.currentSession();
	String hql = "from User u where u.id=?";
	Query query = session.createQuery(hql);
	query.setParameter(0, 2);
	List<User> user = query.list();
	System.out.println("------------SQL执行完毕---------------");
	for (User us : user) {
		System.out.println(us.getName());
	}
}

 

注意是从 0 开始,如果你的 id 是整型,那么必须设置一个整数,如果你设置参数是 "2" 是不行的!

 

也可以使用命名参数:

/**
 * 命名参数
 */
@SuppressWarnings("unchecked")
public static void test5(){
	Session session = HibernateSessionFactory.currentSession();
	String hql = "from User u where u.id=:id";
	Query query = session.createQuery(hql);
	query.setInteger("id", 2);
	List<User> user = query.list();
	System.out.println("------------SQL执行完毕---------------");
	for (User us : user) {
		System.out.println(us.getName());
	}
}

 

使用命名参数感觉上是比较直观的

 

分页的话比较简单,设置两个参数即可:

/**
 * 分页
 */
@SuppressWarnings("unchecked")
public static void test6(){
	Session session = HibernateSessionFactory.currentSession();
	String hql = "from User u";
	Query query = session.createQuery(hql);
	query.setFirstResult(0);
	query.setMaxResults(5);
	List<User> user = query.list();
	System.out.println("------------SQL执行完毕---------------");
	for (User us : user) {
		System.out.println(us.getName());
	}
}

 

至于分组和排序的话,和你写SQL是一样的,只是这里写的是实体的属性名字:

/**
 * 分组排序
 */
@SuppressWarnings("unchecked")
public static void test7(){
	Session session = HibernateSessionFactory.currentSession();
	String hql = "from User u group by name order by id desc";
	Query query = session.createQuery(hql);
	List<User> user = query.list();
	System.out.println("------------SQL执行完毕---------------");
	for (User us : user) {
		System.out.println(us.getName());
	}
}

 

以上方法仅供参考!

 

请您到ITEYE看我的原创:http://cuisuqiang.iteye.com

或支持我的个人博客,地址:http://www.javacui.com

 

分享到:
评论
3 楼 q179181 2012-06-15  
群组?     . . . 
2 楼 cuisuqiang 2012-05-17  
wangjianwhy 写道

加我的群组聊
1 楼 wangjianwhy 2012-05-17  

相关推荐

    Hibernate HQL查询 分页查询 模糊查询.docx

    ### Hibernate HQL 查询详解 #### 一、HQL(Hibernate Query Language)简介 HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者使用类及其属性来编写查询语句,而不是传统的SQL语句。这使得...

    Hibernate-HQL.rar_HQL_hibernate hql

    本篇文档将深入探讨Hibernate中的HQL(Hibernate Query Language),一种面向对象的查询语言,它提供了与SQL类似的语法,但更贴近于面向对象的思维模式,使得开发者可以更加便捷地进行数据查询。 一、HQL简介 HQL是...

    hibernate的HQL的模糊查询

    - 使用HQL模糊查询时,注意防止SQL注入,确保传入的参数是安全的。 - 大量的模糊查询可能导致性能问题,应合理设计索引并优化查询。 - 在处理大量数据时,考虑分页查询以提高效率。 综上所述,Hibernate的HQL模糊...

    Hibernate 多表连接分页查询示范项目

    Hibernate 支持多种方式来实现多表连接查询,包括 HQL(Hibernate Query Language)和 Criteria 查询。本项目主要关注 Criteria API 的使用,这是一种基于 Java 对象的查询方式,更加灵活且易于理解和维护。 **...

    Hibernate连表查询 Hibernate连表查询

    这里使用了HQL(Hibernate Query Language)来执行查询。例如,在`getProductsMenuSub`方法中,通过以下HQL语句实现了连表查询: ```java String queryString = "select a.productsName from TopProducts as a, ...

    Hibernate HQL命名参数和Query接口的分页

    总结起来,熟练掌握Hibernate HQL的命名参数和Query接口的分页查询是提高数据操作效率的关键。同时,注意处理可能出现的数据库关键字冲突问题,确保ORM映射的正确性。通过这些技巧,开发者可以更好地控制和优化...

    hibernate-hql 资料大全

    Hibernate HQL,全称为Hibernate Query Language,是Hibernate框架中用于操作对象关系映射(ORM)的查询语言。它类似于SQL,但设计目的是针对Java对象,而不是数据库表。HQL允许开发者以面向对象的方式编写查询,...

    Hibernate 课件_HQL

    ### Hibernate 课件_HQL 知识点解析 #### HQL查询 ...这些知识点涵盖了HQL的基本概念、查询方法、各种高级查询技巧以及Session的管理等方面,希望能够帮助大家更好地理解和掌握Hibernate的HQL查询技术。

    Hibernate注解方式、HQL查询

    本篇将详细探讨Hibernate的注解方式以及HQL(Hibernate Query Language)查询。 一、Hibernate注解方式 1. **实体类注解**:在Hibernate中,我们可以使用注解来定义一个Java类为数据库中的表。例如,使用`@Entity`...

    hibernate-HQL用例

    HQL(Hibernate Query Language)是Hibernate提供的面向对象的查询语言,类似于SQL,但更贴近Java对象的思维模式。对于初学者来说,理解和掌握HQL是深入学习Hibernate的关键步骤。 1. **HQL简介** HQL允许开发者以...

    Hibernate+sqlserver2000分页

    本篇文章将深入探讨使用Hibernate ORM框架与SQL Server 2000数据库进行分页查询的方法。 首先,Hibernate是Java领域中最流行的ORM(对象关系映射)框架之一,它允许开发者使用面向对象的方式操作数据库,减少了直接...

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

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

    hibernate查询语言hql

    Hibernate查询语言(HQL)是Java开发者用于操作Hibernate ORM框架中的对象关系映射数据的一种强大的查询工具。HQL是面向对象的,它允许开发者用类名和属性而不是表名和列名来编写查询,极大地提高了代码的可读性和可...

    STRUTS2+HIBERNATE详细的分页实现代码详细的分页实现代码

    在这个类中,我们可以通过编写Hibernate HQL或SQL查询语句来实现分页查询。 4. **Struts2 Action** 在Action类中,我们需要处理来自用户的请求参数,如当前页码和每页显示记录数等,并调用DAO中的分页查询方法获取...

    Hibernate中HQL语句的使用[参考].pdf

    Hibernate中HQL语句的使用 ...HQL语句可以用于各种查询场景,包括简单属性查询、多个属性的查询、使用别名、实体对象查询、外置命名查询、查询过滤器、分页查询、对象导航查询、连接查询和统计查询等。

    基于spring+hibernate的组合查询+分页组件

    在Hibernate中,我们可以通过设置FirstResult(对应于SQL的LIMIT开始位置)和MaxResults(对应于SQL的LIMIT大小)参数来实现分页查询。 以下是一个简单的示例,展示如何在Spring和Hibernate中实现组合查询和分页: ...

    Hibernate数据检索(HQL)笔记

    `session.createQuery(hql)` 创建了一个 `Query` 对象,通过 `setParameter` 方法设置参数值,最后通过 `query.list()` 获取查询结果。 #### 三、HQL 查询优化 - **使用缓存**:为了提高性能,可以在应用程序中使用...

    hibernate 模糊查询 分页

    当我们想要实现模糊查询时,可以利用`Criteria` API或者`HQL`(Hibernate Query Language)来完成。例如,如果我们要查询一个名为`User`的实体类中所有名字包含"John"的用户,可以这样做: ```java Session session...

    hibernate分页查询功能

    使用Session的`createQuery(String hql)`方法创建Query对象,然后设置查询参数,通过`setFirstResult(int firstResult)`设置开始位置(即offset),`setMaxResults(int maxResults)`设置每页大小(即length)。...

    hibernateHQL基本查询

    ### Hibernate HQL 基本查询详解 #### 一、HQL 概述 HQL (Hibernate Query Language) 是一种面向对象的查询语言,由 Hibernate 官方提供,用于简化数据库查询过程。与传统的 JDBC 方式相比,使用 HQL 进行数据库...

Global site tag (gtag.js) - Google Analytics