package com.sanmao.QBC
import com.sanmao.util.HibernateUtil
import com.sanmao.utils.Classes
import org.hibernate.Criteria
import org.hibernate.Session
import org.hibernate.criterion.MatchMode
import org.hibernate.criterion.Restrictions
import org.junit.Test
import java.util.List
public class TestQBC extends HibernateUtil{
@Test
public void testqbc(){
Session session=sessionFactory.openSession()
Criteria criteria=session.createCriteria(Classes.class)
criteria.add(Restrictions.eq("id",2L))
List<Classes> list=criteria.list()
for (Classes c: list) {
System.out.println(c.getName())
}
session.close()
}
@Test
public void testqbc_ge(){
Session session=sessionFactory.openSession()
Criteria criteria=session.createCriteria(Classes.class)
criteria.add(Restrictions.ge("id",2L))
List<Classes> list=criteria.list()
for (Classes c: list) {
System.out.println(c.getCid())
}
session.close()
}
@Test
public void testqbc_between(){
Session session=sessionFactory.openSession()
Criteria criteria=session.createCriteria(Classes.class)
criteria.add(Restrictions.between("id",22L,123L))
List<Classes> list=criteria.list()
for (Classes c: list) {
System.out.println(c.getCid())
}
session.close()
}
@Test
public void testqbc_like(){
Session session=sessionFactory.openSession()
Criteria criteria=session.createCriteria(Classes.class)
criteria.add(Restrictions.like("name","%1%", MatchMode.START))
List<Classes> list=criteria.list()
for (Classes c: list) {
System.out.println(c.getName())
}
session.close()
}
}
查询年龄在20-30岁之间的所有学生对象
List list = session.createCriteria(Student.class)
.add(Restrictions.between("age",new Integer(20),new Integer(30)).list()
查询学生姓名在AAA,BBB,CCC之间的学生对象
String[] names = {"AAA","BBB","CCC"}
List list = session.createCriteria(Student.class)
.add(Restrictions.in("name",names)).list()
查询年龄为空的学生对象
List list = session.createCriteria(Student.class)
.add(Restrictions.isNull("age")).list()
查询年龄等于20或者年龄为空的学生对象
List list = session.createCriteria(Student.class)
.add(Restrictions.or(Restrictions.eq("age",new Integer(20)),
Restrictions.isNull("age")).list()
--------------------------------------------------------------------
使用QBC实现动态查询
public List findStudents(String name,int age){
Criteria criteria = session.createCriteria(Student.class)
if(name != null){
criteria.add(Restrictions.like("name",name,MatchMode.ANYWHERE))
}
if(age != 0){
criteria.add(Restrictions.eq("age",new Integer(age)))
}
criteria.addOrder(Order.asc("name"))
return criteria.list()
}
---------------------------------------------------------------------------------
Session session = getHibernateTemplate().getSessionFactory()
.openSession()
Criteria criteria = session.createCriteria(Film.class)
List<Film> list = criteria.add(
Restrictions.or(Restrictions.like("description", key,MatchMode.ANYWHERE),
Restrictions.or(Restrictions.like("name", key,MatchMode.ANYWHERE),
Restrictions.or( Restrictions.like("direct", key,MatchMode.ANYWHERE),
Restrictions.or(Restrictions.like("mainplay",key,MatchMode.ANYWHERE),
Restrictions.like("filearea", key,MatchMode.ANYWHERE)))))).list()