1. Hibernate查询
1.1 概述
1、 根据实体的id值进行查询
语法:
EntityClass entity=(EntityClass)session.get(Class entityClass,Serializable id);
特点:查询速度快,比较常用的方式。
2、 根据HQL语句进行查询
特点:功能强大,最常用的方式。
3、 根据Criteria进行查询
特点:面向对象,功能较HQL弱,实现一些比较复杂的查询。
1.2 HQL
1.2.1 HQL是什么?
Hibernate Query Language,Hibernate查询语言。
1.2.2 HQL的语法
1. 基本语法:
[Select/update/delete ……] [from……] [where……][group by ……[having……]][order by……]
类似SQL一种查询语言,不同的是HQL是面向对象的,即查询的对象是实体类和属性。
HQL的关键字不区分大小写,但是类名分大小写。
类名可以采用全路径类名。
From TUser:返回所有TUser对象及TUser的子对象。
From java.lang.Object:返回数据库中所有表的所有数据。
Where条件:=,<>,<,>,>=,<=,between,not between,in,not in,like,is等和and ,or,not。
Where子句中:可以使用表达式。
1、 实体查询:
From TUser:返回所有TUser对象及TUser的子对象。
From java.lang.Object:返回数据库中所有表的所有数据。
Where条件:=,<>,<,>,>=,<=,between,not between,in,not in,like,is等和and ,or,not。
Where子句中:可以使用表达式。
2、 属性查询
What:Select:后可以指定属性名称,例如:select a.Name from Users a。
When:当我们不需要整个对象,而只需要这个对象中一个或者多个属性时,我们采用属性查询。
3、 实体更新与删除
4、 分组与排序
5、 参数绑定
l 顺序占位符:
l 引用占位符:
6、 分页查询
Query.setFirstResult(Integer firstResultIndex):设置从第几条开始查询。
Query.setMaxResults(Integer maxResults):设置本次最多查询多少条。
7、
1.3 Criteria查询
1.3.1 Criteria是什么
Criteria是hibernate中一个接口,org.hibernate.Criteria(标准)。
1.3.2 Criteria有什么用
它是hibernate在HQL之外提供另外一种查询方式。
它的特点是:完全面向对象,即完全使用对象和方法来构造查询条件。
1.3.3 Criteria如何使用?
使用有点类似的Query。
常用的类
l Criteria:标准,条件的容器。
l Restrictions,条件(相当于sql语句中where条件),用来组装各种条件。
l Expression:表达式,同Restrictions用来组装条件,用在Hibernate3.0以前的版本,在3.1后过时了。
l Order:排序(相当于sql语句中的order by)。
l Projections:投影(相当于sql语句中group by、avg、max等条件),用来组装分组、统计等条件。
l ProjectionList:投影集合,ProjectionList pList= Projections. projectionList();
l Example:示例。
pList.add(Projections.avg(…));
…
Crit.setProjection(pList);