一. Hibernate中的批量查询方式
1. HQL查询----多表查询但是不复杂是使用
2. Criteria查询(无语句查询)----适用单表查询
3. 原声SQL查询----复杂的业务查询
二. HQL查询实例讲解
package testHQL;
import hibernateDemo1.Customer;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import HibernateUse.HibernateUtils;
//测试HQL
public class HibernateDemo1 {
//基本查询
public void demo1(){
//1. 获得session
Session session = HibernateUtils.openSession();
//2. 控制事务
Transaction tx = session.beginTransaction();
//3. 执行操作
//1> 书写HQL语句
String hql = "from Customer";//查询所有的Customer对象
//2> 根据HQL语句创建查询对象
Query query = session.createQuery(hql);
//3> 根据查询对象获得查询结果
List<Customer> list = query.list();//返回list结果
//query.uniqueResult();//节接收唯一的查询结果
System.out.println(list);
}
//条件查询
//HQL语句中,不可能出现任何数据库相关的信息的,只能是类的属性名
public void demo2(){
//1. 获得session
Session session = HibernateUtils.openSession();
//2. 控制事务
Transaction tx = session.beginTransaction();
//3. 执行操作
//1> 书写HQL语句
String hql = "from Customer where cust_id = 1";//查询所有的Customer对象
//2> 根据HQL语句创建查询对象
Query query = session.createQuery(hql);
//3> 根据查询对象获得查询结果
Customer c = (Customer)query.uniqueResult();//节接收唯一的查询结果
System.out.println(c);
}
//条件查询
//问号占位符
public void demo3(){
//1. 获得session
Session session = HibernateUtils.openSession();
//2. 控制事务
Transaction tx = session.beginTransaction();
//3. 执行操作
//1> 书写HQL语句
String hql = "from Customer where cust_id = ?";//查询所有的Customer对象
//2> 根据HQL语句创建查询对象
Query query = session.createQuery(hql);