我们可以使用Hibernate提供的API,进行SQL语句查询.org.hibernate.Criteria是对SQL进行封装,可以用它来产生不同组合的查询。
首先以最基本的查询为例子,可以查询某物件所对应的database里面的内容:
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());
}
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關係
以上是对Criteria的使用和具体对应查询条件的方法做了简单的介绍。
首先以最基本的查询为例子,可以查询某物件所对应的database里面的内容:
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());
}
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關係
以上是对Criteria的使用和具体对应查询条件的方法做了简单的介绍。