HQL:Hibernate专属语言,可以跨数据库

一、基本查询

 1 public void testQuery(){
2 Session session = HibernateUtils.getSession();
3 String hql = "from Person";
4 Query query = session.createQuery(hql);
5 List<Person> list = query.list();
6 for(Person p : list){
7 System.out.println(p);
8 }
9 HibernateUtils.close(session);
10 }

  单个属性列查询

1 //查询单个属性
2 String hql = "select p.pname from Person p";
3 Query query = session.createQuery(hql);
4 List<String> list = query.list();

  多个属性查询

1 //查询多列
2 String hql = "select p.id,p.pname from Person p";
3 Query query = session.createQuery(hql);
4 List<Object[]> objArrList = query.list();
5 for(Object[] objArr : objArrList){
6 System.out.println("编号:"+objArr[0]+" 姓名:"+objArr[1]);
7 }

二、Hibernate分页查询

1 Session session = HibernateUtils.getSession();
2 String hql = "from Person";
3 Query query = session.createQuery(hql);
4 //设置分页查询
5 query.setFirstResult(0);
6 query.setMaxResults(5);
7 List<Person> list = query.list();

三、限定查询

String hql = "from Person  where id = ?";
Query query = session.createQuery(hql);
query.setParameter(0, 5);
List<Person> list = query.list();
1 Session session = HibernateUtils.getSession();
2 String hql = "from Person where id = :id";
3 Query query = session.createQuery(hql);
4 query.setParameter("id", 5);
5 List<Person> list = query.list();

四、统计查询

1 String hql = "select count(*) from Person p";
2 Query query = session.createQuery(hql);
3 Object result = query.uniqueResult();

五、分组统计查询

1 String hql = "select avg(p.salary),p.pgender from Person p group by p.pgender";
2 Query query = session.createQuery(hql);
3 List<Object[]> objArrList = query.list();

六、投影查询

建立一个业务Bean,在bean提供有参的构造器来接收sql的返回值,创建出对象

七、排序查询

1 String hql = "from Person p order by p.salary desc";
2 Query query = session.createQuery(hql);
3 List<Person> list = query.list();

八、从配置文件中设置查询,然后提取

在 Person.hbm.xml配置文件中
1 <query name="getPerson">
2 <![CDATA[
3 from Person p where p.salary > 400
4 ]]>
5 </query>
1 Query query = session.getNamedQuery("getPerson");
2 List<Person> list = query.list();

Hibernate4.3 HQL查询的更多相关文章

  1. Hibernate--------八大类HQL查询集合

    Hibernate的   八大类HQL查询集合 Hibernate的八大类HQL查询集合: 一:属性查询(SimplePropertyQuery) 1,单一属性查询 *返回结果集属性列表,元素类型和实 ...

  2. [NHibernate]HQL查询

    目录 写在前面 文档与系列文章 查询的几种方式 HQL查询 一个例子 总结 写在前面 上篇文章介绍了nhibernate在项目中的基本配置,包括数据库连接字符串的设置,映射文件的配置及需注意的地方,这 ...

  3. hibernate学习(7)——HQL查询

    1.HQL查询定义 Hibernate查询分类: 1. get/load 根据OID检索 2. 对象视图检索 c.getOrders 3. Sql语句 createSqlQuery 4. Hql语句 ...

  4. HQL查询——聚集函数

    HQL查询--聚集函数 HQL也支持在选出的属性上使用聚集函数.HQL支持的聚集函数与SQL的完全相同: (1)avg:计算属性平均值: (2)count:统计选择对象的数量: (3)max:统计属性 ...

  5. HQL查询——关联和连接

    HQL查询--关联和连接 为了便于理解有关的使用关联和连接进行HQL查询,首先提供两个具有关联关系的持久化类:Person类和MyEvent类 Person类: import javax.persis ...

  6. HQL查询——from子句

    HQL查询--from子句 1.from是最基本的HQL语句,from关键字后紧跟持久化类的类名: from Person 表示从Person持久化类中选出全部的实例. 2.推荐为持久化类的每个实例起 ...

  7. HQL查询——HQL查询的基本用法

    HQL查询--HQL查询的基本用法 1.HQL语法类似于SQL语法,但是需要注意的是,HQL是一种完全面向对象的查询语言.SQL语言操作的对象是数据表.列等数据库对象,而HQL语言的操作对象是类.实例 ...

  8. 转: Hibernate HQL查询 插入 更新(update)实例

    1.实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql=”from User user ”;List list=session.CreateQuery(hq ...

  9. NHibernate系列文章二十二:NHibernate查询之HQL查询(附程序下载)

    摘要 NHibernate提供了多种查询方式,最早的HQL语言查询.Criteria查询和SQL Query,到NHibernate 3.0的Linq NHibernate,NHIbernate 4. ...

随机推荐

  1. 关于Junit4 和 Junit5.4

    1.    Junit5.4 主要是用于Maven框架 , 对普通类的测试是不可以的. 如这个, junit4可以, junit5.4不可以. 2. Junit不可以使用 static 静态方法. 关 ...

  2. virtualenv最佳实战

    一 系统环境 windows 10 64-bit 安装python 2.7.18 和python 3.8两个版本 二 安装 默认会把virtualenv安装到系统默认python版本中 pip ins ...

  3. Min Cost Climbing Stairs [746]

    Min Cost Climbing Stairs [746] 题目描述 简单来说就是:要跳过当前楼梯需要花费当前楼梯所代表的价值cost[i], 花费cost[i]之后,可以选择跳一阶或者两阶楼梯,以 ...

  4. 阿里大牛教你基于Python的 Selenium自动化测试示例解析

    今天给大家讲解的是自动化测试示例的解析,如有不对的地方请多多指教. 自动化测试示例如下: from selenium import webdriver from selenium.webdriver. ...

  5. 在Spring中拦截器的使用

    Filter Filter是Servlet容器实现的,并不是由Spring 实现的 下面是一个例子 import java.io.IOException; import javax.servlet.F ...

  6. 重要bug记录

    导唱功能:需求点分析:本地已下载歌曲播放,判断是否有音频原唱伴奏版权,无版权按钮显示“导唱”,有版权显示“播原唱”.程序实现逻辑: 1.下载歌曲时调用一个歌曲信息接口,返回歌曲的一些属性信息,其中包括 ...

  7. 02_套接字编程(socket抽象层)

    1.套接字概述 1.套接概述: 套接是进行网络通信的一种手段(socket) 2.套接字分类:         流式套接字(SOCK_STREAM): 传输层基于tcp协议进行通信         数 ...

  8. 【Oracle】SQL对某字段模糊查询,哪种方案最快?

    问题:有一张表hy_test,查找其字段name中包含ufo的记录数,下面哪种方案最快? A.select count(*) from hy_test where name like '%ufo%' ...

  9. 莫名其妙的Explain Plan

    两张表的建表语句: CREATE TABLE hy_emp ( empno NUMBER(8,0) not null primary key, ename NVARCHAR2(60) not null ...

  10. 吴恩达《深度学习》-第五门课 序列模型(Sequence Models)-第二周 自然语言处理与词嵌入(Natural Language Processing and Word Embeddings)-课程笔记

    第二周 自然语言处理与词嵌入(Natural Language Processing and Word Embeddings) 2.1 词汇表征(Word Representation) 词汇表示,目 ...