`
fisherhe
  • 浏览: 52360 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

关于Criteria查询的一些小结

SQL 
阅读更多

Criteria Query是通过面向对象化的设计,将查询条件封装成对象,可以看作是对传统SQL对象化的表示。

  构建Criteria查询:

  1.criteria接口是针对一个特定持久化类的查询,

  2.条件查询时,criteria充当一个容器,由Criterion接口的实现类设置查询条件,使用criteria.add()方法加入实例中.

 

 

	public void testCriteria() {
		// 这里session是util类来得到
		Session session = HibernateUtil.getSession();
		
		// 构建criteria,这里传入的是持久化类User的一个类模版
		Criteria criteria = session.createCriteria(User.class);
		
		// criteria里面有很多比较的方法,lt,gt,le,ge,eq,and,or,like等等
		// 添加查询条件 ne是指不等于 gt是大于 lt是小于,指定持久化类的属性和参数的值
		criteria.add(Restrictions.ne("userName", "fisher"));
		criteria.add(Restrictions.and(Restrictions.gt("age", 18), Restrictions
				.lt("age", 20)));
		
		// 分页实现 限定返回的搜索的结果从10条开始的后面20条记录
		criteria.setFirstResult(10);
		criteria.setMaxResults(20);
		
		// 排序的实现 这里age是持久化类的属性 对应sql中的order by.
		criteria.addOrder(Order.asc("age"));// 升序
		criteria.addOrder(Order.desc("age"));// 降序
		
		// 统计实现
		// criteria.avg(),rowcount(),count(),max(),min(),countDistinct();
		// 这里是按照age来进行分组
		criteria.setProjection(Projections.groupProperty("age"));
		
		List list = criteria.list();
		Iterator i = list.iterator();
		while (i.hasNext()) {
			System.out.println(i.next());
		}
		HibernateUtil.closeSession();

	}
 

 

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics