hibernate criteria 和restriction 查询

Hibernate中条件查询,通过如下3个类完成。

Criteria:代表一次查询。

Criterion:代表一个条件查询。

Restrictions:产生条件查询的工具类。

 

执行条件查询的步骤:

1.       获取Hibernate的Session对象。

2.       以Session对象创建Criteria对象。

3.       使用Restrictions的静态方法创建Criterion查询条件。

4.       向Criteria添加Criterion查询条件。

5.       执行Criteria的list等方法返回结果。

 

以下是一个小例子,利于理解:

Configuration c = new Configuration().configuration();
SessionFactory sf = c.buildSessionFactory();
Session s = sf.openSession();
Criteria t = s.createCriteria(User.class);//物件表名是User;
List users = t.list();
for(Iterator it = user.iterator();it.hasnext())
{
   User user = (User)it.next();
        System.out.println(user.getUsername()+"/t"+user.getPassword()+"/t"+user.getAge());
}
一个不带where条件的基本的查询,把它翻译成SQL语句,相当于:
select this_.username,this_.password,this_.age from user;
用Criteria进行带条件的语句查询:
Criteria t = s.createCriteria(User.class);//物件表名是User;
  t.add(Restrictions.gt("age", "20"));//选择age>20
  t.add(Restrictions.lt("age", "30"));//选择age<30
  t.addOrder(Order.desc("age"));//排序
  List users = t.list();
for(Iterator it = user.iterator();it.hasnext())
{
   User user = (User)it.next();
        System.out.println(user.getUsername()+"/t"+user.getPassword()+"/t"+user.getAge());
}
以上是对Criteria的使用和具体对应查询条件的方法做了简单的介绍。

 

Restrictions里面常用的方面具体如下:
 

Restrictions.eq--->等於
  Restrictions.gt--->大于
  Restrictions.ge--->大於等於 >=
  Restrictions.lt--->小於 <
  Restrictions.le--->小於等於 <=
  Restrictions.between--->对应SQL的BETWEEN子句
  Restrictions.like--->对应SQL的LIKE子句
  Restrictions.in--->对应SQL的in子句
  Restrictions.and--->and关系
  Restrictions.or--->or关系

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值