注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Lable

........................................

 
 
 

日志

 
 

5_Criteria查询  

2011-12-19 11:19:36|  分类: Hibernate |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

一、如何使用Criteria< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" />

得到Session

创建Criteria对象,传递的参数是类的类信息

执行查询,用list()获取结果

表达式:Criteria criteria = sessioncreateCriteriaUser.class);

二、Criteria的条件查询

    需要使用Criteriaadd()方法加入“条件实例”,条件实例由Restrictions的各种静态方法返回,

表达式:criteria.add(Restrictions.eq(“name”,”accp”));

        方法

 

Restrictions.eq()

对应SQL的等于(’=’

Restrictions.allEq()

使用Map,使用key/value进行多个相等的值的比对

Restrictions.gt()

对应SQL的大于 (‘>’)

Restrictions.ge()

对应SQL的大于等于 (‘>=’)

Restrictions.lt()

对应SQL的小于 (‘<’)

Restrictions.le()

对应SQL的小于等于 (‘<=’)

Restrictions.between()

对应SQLbetween子句

Restrictions.like()

对应SQLlike子句,有两种方法,第二种传三个参数的方法,可以指明模糊级别,Matchmode

Restrictions.in()

对应SQLin子句

Restrictions.and()

对应SQLand

Restrictions.or()

对应SQLor

Restrictions.not()

对应SQLnot

 

三、Example

    如果属性条件很多,使用Restrictions不方便,就可以使用Example

    表达式:House house = new House();

          

house.setPrice();

           house.setFloorage();

           Criteria criteria = session.createCriteria(House house);

           Criteria.add(Example..create(house);

           List result = criteria.list();

四、Criteria高级特征——Criteria查询排序

    表达式:Criteria criteria = session.createCriteria(House.class);

           criteria.addOrder(Order.desc(“price”);

           List result = criteria.list();

五、Criteria高级特征——限定返回数据行数(分页显示)

    表达式:Criteria criteria = session.createCriteria(House.class);

           Criteria.setFirstResult(2);

           criteria.setMaxResults(2);

           List result = criteria.list();

六、Criteria查询中的聚合函数

序号

方法

说明

1

Projections.avg()

对于SQL聚合函数的avg()方法

2

Projections.count()

对于SQL聚合函数的count()方法

3

Projections.max()

对于SQL聚合函数的max()方法

4

Projections.min()

对于SQL聚合函数的min()方法

5

Projections.sum()

对于SQL聚合函数的sum()方法

表达式:criteria.setProjection(Projections.count(“id”);  //其他的操作也都这样用

七、Criteria查询中的分组

ProjectionsgroupProject()来进行分组

如果同时想结合统计和分组,需要使用ProjectionLIst用于多种组合

ProjectionList projectionList = Projections.projectionList();

projectionList.add(Projections.groupProperty(“price”));

projectionList.add(Projections.rowCount());

Criteria criteria = session.createCriteria(House.class);

Criteria.setProjection(projectionList);

List<House> results = criteria.list();

  评论这张
 
阅读(16)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017