HQL(Hibernate Query Language)查询:
1、查询所有学生信息:
public static void testSel() { Session session = HibernateUtils.openSession(); Transaction transaction = session.beginTransaction(); String hql="from pers.zhb.domain.Student"; Query query= session.createQuery(hql); List<Student>list=query.list(); System.out.println(list); transaction.commit(); session.close();//游离状态 }
2、条件查询(查询所有的女学生的信息):
public static void testSel() { Session session = HibernateUtils.openSession(); Transaction transaction = session.beginTransaction(); String hql="from pers.zhb.domain.Student where sex=‘女‘"; Query query= session.createQuery(hql); List<Student>list=query.list(); System.out.println(list); transaction.commit(); session.close();//游离状态 }
3、问号占位符的使用:
public static void testSel() { Session session = HibernateUtils.openSession(); Transaction transaction = session.beginTransaction(); String hql="from pers.zhb.domain.Student where studentno=?"; Query query= session.createQuery(hql); query.setInteger(0,937221524); Student student= (Student) query.uniqueResult();//获取唯一值 System.out.println(student); transaction.commit(); session.close(); }
public static void testSel() { Session session = HibernateUtils.openSession(); Transaction transaction = session.beginTransaction(); String hql="from pers.zhb.domain.Student where sex=?"; Query query= session.createQuery(hql); //query.setFetchSize(0,"女"); query.setParameter(0,"女");//通用 List<Student> list=query.getResultList(); System.out.println(list); transaction.commit(); session.close(); }
4、命名占位符:
省去了用数字指明属性位置的麻烦,直接用属性名代替。
public static void testSel() { Session session = HibernateUtils.openSession(); Transaction transaction = session.beginTransaction(); String hql="from pers.zhb.domain.Student where sex=:sex"; Query query= session.createQuery(hql); query.setParameter("sex","女");//通用 List<Student> list=query.getResultList(); System.out.println(list); transaction.commit(); session.close(); }
5、分页查询:
需要指明从哪开始,要取几条数据:
public static void testSel() { Session session = HibernateUtils.openSession(); Transaction transaction = session.beginTransaction(); String hql="from pers.zhb.domain.Student where sex=:sex"; Query query= session.createQuery(hql); query.setFirstResult(0);//从0开始 query.setMaxResults(2);//抓取两条数据 query.setParameter("sex","女");//通用 List<Student> list=query.getResultList(); System.out.println(list); transaction.commit(); session.close(); }
原文:https://www.cnblogs.com/zhai1997/p/11829077.html