本文主要介绍了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:绑定参数
使用绑定参数可以在程序运行时动态决定一些参数的值。
查询语句中以“ :”开头的变量叫做命名参数,把命名参数和一个具体的值进行绑定的过程叫做绑定参数。
4656




被折叠的 条评论
为什么被折叠?



