1.查询步骤
使用Criteria查询的基本步骤如下:
(1)获取Hibernate session对象//示例
Session session=HibernateSessionFactory.getSession();
Criteria criteria =session.createCriteria(School.class); //criteria对象的创建
/* 加入查询条件
* Criterion criterion =Restrictions.like("schoolAddress", "%广%");
*/ criteria.add(criterion);
List list=criteria.list();
System.out.println("学校名称 学校地址");
System.out.println("--------------------------------");
for(int i=0;i
该接口的部分方法介绍如下:
返回值类型 方法 功能说明
Criteria add(Criterion criterion) 添加查询条件,参数为Criterion对象
Criteria addOrder(Order order) 添加排序条件,参数为Order对象
List list() 进行查询,得到查询结果。
Criteria setMaxResults(int maxResults) 一次查询显示的最大记录数
Criteria setFirstResult(int firstResult) 从哪条记录开始显示
Criteria setProjection(Projection projection) 使用统计函数
用来生成查询条件的工具类,生成的查询条件的方法都是静态方法,部分方法如下:
返回值类型 方法 HQL运算符
static LogicalExpression and(Criterion lhs, Criterion rhs) and
static Criterion between(String propertyName, Object lo, Object hi) between
static SimpleExpression eq(String propertyName, Object value) =
static SimpleExpression ge(String propertyName, Object value) >=
static SimpleExpression gt(String propertyName, Object value) >
static Criterion in(String propertyName, Collection values) in
static Criterion in(String propertyName, Object[] values) in
static Criterion isEmpty(String propertyName)
static Criterion isNotEmpty(String propertyName)
static Criterion isNotNull(String propertyName) is not null
static Criterion isNull(String propertyName) is null
static SimpleExpression le(String propertyName, Object value) <=
static SimpleExpression like(String propertyName, Object value) like
static SimpleExpression lt(String propertyName, Object value) <
static SimpleExpression ne(String propertyName, Object value) <>
static Criterion not(Criterion expression) not
static LogicalExpression or(Criterion lhs, Criterion rhs) or
Order类主要用来实现数据的字段的排序:
返回值类型 方法 功能说明
static Order asc(String propertyName) 升序排列
static Order desc(String propertyName) 降序排列
此类中定义了多个静态方法,用于调用聚集函数、分组和统计方法。
返回值类型 方法 功能说明
static AggregateProjection avg(String propertyName) 求平均数
static CountProjection count(String propertyName) 统计数量
static PropertyProjection groupProperty(String propertyName) 按字段分组
static AggregateProjection max(String propertyName) 求最大值
static AggregateProjection min(String propertyName) 求最小值
static Projection rowCount() 统计行数
static AggregateProjection sum(String propertyName) 求和