HQL查询

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

      本文主要介绍了Hibernate的几种主要的检索方式:HQL检索方式、QBC检索方式。HQL是Hibernate Query Language的缩写,是官方推荐的查询语言。QBC是Query By Criteria的宿写,是Hibernate提供的一个查询接口。Hibernate是一个轻量级的框架,它允许使用原始SQL语句查询数据库。

 

 一、HQL查询

1:检索类的所有对象

   使用HQL语句可以检索出一个类的所有对象,如HQL语句“from Student” 表示检索Student的所有对象。

  

  • session.createQuery()以HQL查询语句为参数,生成一个查询对象。本例中的HQL语句为“from Student”,这是from子句。
  • HQL关键字不区分大小写,FROM,from和From是一样的。
  • 调用query.list()时,才真正开始执行HQL查询语句,并把查询的结果放在List中。

2:检索类的某几个属性

   

  • 属性查询使用select关键字。
  • 属性前可以加上类名加以限定,但是一般没有必要。
  • 属性查询区分大小写,如果出错将出现异常。
  • 查询结果将只显示查询的属性列。
  • 属性查询的结果,对于用it.next()获得的每条记录,可以存储在Object[]数组中,以便进行存取。

3:指定别名

   要查询时,可能用关键字as指定别名,指定别名可以简化查询,有时必需指定别名才能进行查询。如:

  

   s就是类Student的别名,注意as可以省略,下面的语句和上面的等效。

  

4:使用where条件子句

   在where子句中可以指定查询属性是否为null:is null、not null,其含义分别表示为空和不为空。

   

5:使用distinct过滤重复值

6:删除对象

7:更新对象值

8:like进行模糊查询

9:order by对结果进行排序

   

  • order by 关键字对结果进行排序,默认为升序。"order by asc"为升序,"order by desc"为降序。

   

    上面写法为一个升序一个降序。

10:限制每次查询的返回对象数

    Query接口提供了两个函数,用于限制每次查询返回的对象数。

  • setFirstResult(int firstResult)用于设置从哪一个对象开始检索。参数firstResult设置开始检索的起始记录。
  • setMaxResult(int maxResult)用于设置每次检索返回的最大对象数。参数maxResult用于设置每次检索返回的对象数目。
  • 在分页算法中常用到这两个函数。
  • 计算出总页数的方法是:(count+pageSize-1)/pageSize  (count:记录总数 pageSize是每页显示的记录数目)

11:绑定参数

    使用绑定参数可以在程序运行时动态决定一些参数的值。

    查询语句中以“  :”开头的变量叫做命名参数,把命名参数和一个具体的值进行绑定的过程叫做绑定参数。

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

   

  

  

Super Query 一个多源查询数据对比的工具 Super Query 简介这是一款java开发的多源数据库数据查询工具。 只需要简单配置jdbc映射即可随意切换数据源获取数据信息。 配置简单,方便的在各个数据库间切换数据库操作,支持Web驱动测试与Api调用,支持多源数据的数据对比。 阅读详情

相关推荐

HQL连接查询

Hibernate进行多表查询与SQL其实是很相似的,但是HQL会在原来SQL分类的基础上又多出来一些操作。HQL的多表连接查询的分类如下:      其实这些连接查询语法大致都是一致的,都是HQL查询的是对象而SQL查询的是表。那么我们来比较一下SQL和HQL的连接查询。 SQL连接查询HQL连接查询:      在HQL中,我们不用写关联

不知不觉已变淡 4656

new 对象在 for循环外和内的区别

List list = new ArrayList(10); IsuApiViews isuApiViews = new IsuApiViews(); page=super.findPage(page, isuViews); List listView = page.getList(); int size = listView.size(); if (null!=listView&&amp...

weixin_39576092的博客 1591

HibernateHQL查询

HibernateHQL查询 HQL是什么 Hibernate Query Language(Hibernate查询语言)。 就是一套类似SQL的语言,但是操作的是持久化对象。 是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态和 关联之类的概念 注意:使用hql操作数据库表的好处。不同的关系型数据库使用的hql的语法是相同的。 语句 书写SQL语句:selec...

Kato_op的博客 428

super关键字的使用总结

⑤ 由③和④得到结论:子类的任何一个构造器中,要么会调用本类中重载的构造器,要么会调用父类的构造器。④ 如果在子类构造器的首行既没有显示调用"this(形参列表)",也没有显式调用"super(形参列表)",结合②,结论:在构造器的首行,"this(形参列表)" 和 "super(形参列表)"只能二选一。--> 我们在通过子类的构造器创建对象时,一定在调用子类构造器的过程中,直接或间接的调用到父类的构造器。③ 我们前面讲过,在构造器的首行可以使用"this(形参列表)",调用本类中重载的构造器,

m0_59281987的博客 1928

HibernateHQL查询、条件查询、SQL查询

Hibernate 支持两种主要的查询方式: Criteria查询,又称为“对象查询”,它用面向对象的方式将构造查询的过程做了封装映射文件。 HQLHibernate Query Languge,Hibernate 查询语言)查询,是一种面向对象的查询语言,其中没有表和字段的概念,只有类、对象和属性的概念。 1,Query接口 HQLHibernate Query Language的缩写,HQL的语法与SQL相似,但HQL是一种面向对象的查询语言。SQL的操作对象是数据表、列等数据库对象,.

燕双嘤 6264

hibernate——HQL查询总结

hibernate——HQL查询总结HQL概述:HQL的简单查询HQL的别名查询:HQL的多态查询:HQL的排序查询:HQL的分页查询:HQL检索单个对象:HQL的条件查询:HQL使用聚集函数:HQL分组统计:HQL的投影查询: HQL概述: HQL(Hibernate Query Language) 是面向对象的查询语言, 它和 SQL 查询语言有些相似.Hibernate 提供的各种检索...

程序员小哲的博客 9516

HQL Query查询

对于我们学习的HQL,我大概理解为就是一种查询的语言,它没有增加、删除、修改的作用,而对我们用来查询的操作,感觉用起来就是很简便,代码很少,很好理解一些。下面是我通过学习和搜索对HQL的一些简单认识和总结。 一、对HQL的一些基本任何是了解: 1、  HQLHibernate Query Language):面向对象的查询语句,与SQL不同,HQL中的对象名是区分大小写的(除了Java类和属

*~~~~~向日葵、的眼里只有【太阳】 3704

HibernateHQL查询

一、Hibernate 提供了以下几种检索对象的方式: 导航对象图检索方式: 根据已经加载的对象导航到其他对象 OID 检索方式: 按照对象的 OID 来检索对象 HQL 检索方式:使用面向对象的 HQL 查询语言 QBC 检索方式: 使用 QBC(Query By Criteria) API 来检索对象. 这种 API 封装了基于字符串形式的查询语句, 提供了更加面向对象的查询接口.

无羁之风的专栏 3553

hibernate中的hql查询案例

HQLHibernate Query Language),提供更加丰富灵活、更为强大的查询能力;HQL更接近SQL语句查询语法。查询的表(Table)名称是类的名称,表的字段是对象的属性,有多个类的话,可以使用类的全限定名来指定,比如现在有一个类,它位于a/aa/bb/cc/User.java。对应hql写法可以是,from a.aa.bb.cc.User,这一写法主要是区分有两个不同包下出现了...

码到家 2018

HQL查询方式

**技术分析之HQL查询方式概述** 1. HQL的介绍 * HQL(Hibernate Query Language) 是面向对象的查询语言, 它和 SQL 查询语言有些相似 * 在 Hibernate 提供的各种检索方式中, HQL 是使用最广的一种检索方式 2. HQL与SQL的关系 * HQL 查询语句是面向对象的,Hibernate负责解析HQL查询语句, 然后根据对

wxzyzydd的博客 364

HQL 查询

HQL 查询(简单多表查询 不复杂的查询)查询所有对象 String HQL = "from User";跟着的是类名 按条件查询 HQL不会出现表中字段 id 代表的是属性名 String HQL = "from User where id = 1"; 查询方法 Query query = session.createQuery(HQL); 返回结果(预见结果) 集合用: list

ACE 781

Hibernate框架之HQL查询

在一篇博客 Hibernate框架之Query、Criteria、SQLQuery三个数据查询对象,介绍了Hibernate中的Query查询对象。Query对象使用的是一种面向对象类似SQL的HQL查询HQL语法与SQL语法基本一致,本篇博客将进行HQL查询演示,并且会贴出对应的SQL语句。 一、创建基于Hibernate框架的Java项目 为了方便演示,数据库中将插入Customer、Ord...

hestyle的博客 872

java hql查询_Hibernate查询 HQL查询 查询某几列

HQLHibernate Query Language的简写,即 hibernate 查询语言:HQL采用面向对象的查询方式。HQL查询提供了更加丰富的和灵活的查询特性,因此HibernateHQL查询方式立为官方推荐的标准查询方式,HQL查询在涵盖Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装。在HQL中,你可以直接From你的实...

weixin_29959015的博客 297

Hibernate HQL多表查询

1、内连接和迫切内连接   (1)内连接     HQL语句:from 实体类名 实体类别名 inner join 实体类别名.表示另一个表数据的集合名称   (2)迫切内连接     HQL语句:from 实体类名 实体类别名 inner join fetch 实体类别名.表示另一个表数据的集合名称   (3)区别:内连接返回的数据以数组的方式封装,迫切内连接返回的数据以对象的方式封装...

LonelyMrFan的博客 2560

Hibernate HQL查询 查询某几列

Hibernate使用Query对象进行查询。Session的createQuery()方法能够创建Query实例,参数为HQLQuery对象能够返回各种类型的查询结果, 例如long、String、List<实体类>、List、POJO等。最常用的查询方法有uniqueResult()与list()等。其中uniqueResult()返回单个值,而list()返回零个或者多个值。1.直接从实体对

gongzhufanlulu的博客 5009
上一篇: Struts2中ActionContext
下一篇: PreparedStatement用法总结
thunder_1985
博客等级 码龄17年 22粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值