Hibernate查询

 

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 LanguageHibernate查询语言。

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、          属性查询

WhatSelect:后可以指定属性名称,例如: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是什么

Criteriahibernate中一个接口,org.hibernate.Criteria(标准)。

 

1.3.2     Criteria有什么用

它是hibernateHQL之外提供另外一种查询方式。

它的特点是:完全面向对象,即完全使用对象和方法来构造查询条件。

 

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 byavgmax等条件),用来组装分组、统计等条件。

l       ProjectionList:投影集合,ProjectionList pList= Projections. projectionList();

l       Example:示例。

pList.add(Projections.avg(…));

Crit.setProjection(pList);

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值