完全隐藏了SQL,使用面向对象的方式查询,简称QBC(query by criteria)
声明
Criteria criteria = session.createCriteria(类名.class)
类名.class等价于SQL种的from
常用方法
方法名 | 说明 | 对应SQL |
---|---|---|
setProjection(Projection) | 选择一个列 | select |
setProjection(ProjectionList) | 选择多个列 | select |
add(Criterion) | 添加一个查询条件 | where |
addOrder(Order) | 添加一个排序条件 | order by |
createAlias() | 创建关联查询 | join、left join、right join、inner join |
createCriteria(String) | 关联条件 | on |
setFirstResult(int) | 从第几条开始返回 | limit第一个参数 |
setMaxResults(int) | 返回几条数据 | limit第二个参数 |
groupProperty(String) | 分类汇总 | group by |
参数说明:
-
Projection:
- Property.forName(String字段名),返回Property对象
- Projections.统计函数(avg、count、distinct、max、min、sum、rowcount)
-
ProjectionList: ProjectionList projectionlist=Projection.projectionList;projectionlist.add(projection)
-
Criterion: Restrictions.静态方法
-
常用的静态方法
方法 描述 tring,Object) 使字段名等于值 tring,Object) 使字段名不等于值 q(Map) 多个想等条件 tring,Object) greater than tring,Object) greater equals tring,Object) less than tring, Object) less equals een(String,Object1,Object2) Object<=String<=Object2 tring,Collection) String是否在集合里面 (String,Object) 字符匹配
-
-
order:order.asc(字段名)–>升序
order.desc(字段名)–>降序