Hibernate查询方式
第一种
HQL
条件查询;建议使用字符串的占位符的方式
分页查询:setFirstResult 第几个开始setMaxResults查找几个
最大的特点是封装了sql 语句,在查找使用的是类名和类的属性名
1.基础查询
//基础查询
@Test
public void testFun(){
Session session = HibernateUtil.getOpenSession();
Transaction transaction = session.beginTransaction();
//Hql查询
String hql = "from Student";
Query query = session.createQuery(hql);
List<Student>list = query.list();
transaction.commit();
System.out.println(list);
session.close();
}
2.条件查询 占位符
public void testFun1(){
Session session = HibernateUtil.getOpenSession();
Transaction transaction = session.beginTransaction();
//hql 语法 中的查找用的是类名和类的属性名
String hql = "from Student where name =?";
Query query = session.createQuery(hql);
//hql的占位符是从零开始的
query.setParameter(0,"傻强");
List list = query.list();
System.out.println(list);
transaction.commit();
session.close();
}
3.条件查询 字符串 占位符
public void testFun2(){
Session session = HibernateUtil.getOpenSession();
Transaction transaction = session.beginTransaction();
String hql = "from Student where name = :name";
Query query = session.createQuery(hql);
query.setParameter("name","傻强");
List<Student> list = query.list();
System.out.println(list);
transaction.commit();
session.close();
}
4.分页查询
public void testFun3(){
Session session = HibernateUtil.getOpenSession();
Transaction transaction = session.beginTransaction();
String hql = "from Student";
Query query = session.createQuery(hql);
query.setFirstResult(0);//从第0开始,开始位置
query.setMaxResults(2);//找的个数
List<Student> list = query.list();
System.out.println(list);
transaction.commit();
session.close();
}