Hibernate 条件查询的用法

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

Criteria:代表一次查询。

Criterion:代表一个条件查询。

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

 

执行条件查询的步骤:

1.       获取HibernateSession对象。

2.       Session对象创建Criteria对象。

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

4.       Criteria添加Criterion查询条件。

5.       执行Criterialist等方法返回结果。

 

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

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--->
對應SQLBETWEEN子句

  Restrictions.like--->
對應SQLLIKE子句

  Restrictions.in--->
對應SQLin子句

  Restrictions.and--->and
關係

  Restrictions.or--->or
關係


 

 

你可能感兴趣的:(sql,Hibernate,list,session,user,iterator)