Hibernate的查询方式
1、OID查询
hibernate根据对象的OID(主键)进行检索
使用get方法
Customer customer=session.get(Customer.class,1l);
使用load方法
Customer customer=session.load(Customer.class,1l);
2、对象导航检索
hibernate根据一个已经查询到的对象,获得其关联的对象的一种查询方式
LinkMan linkMan=Session.get(LinkMan.class,1l); Customer customer=linkMan.getCustomer();
3、HQL检索
Hibernate Query Language 的查询语言,是一种面向对象的方式的查询语言,语法类似于SQL。通过session.createQuery()用于接收一个HQL进行查询
HQL的简单查询
/* * HQL简单查询 * */ public void demo2() { Session session=HibernateUtils.openSession(); Transaction transaction=session.beginTransaction(); Query query=session.createQuery("from Customer"); List<Customer> list=query.list(); for(Customer customer:list) System.out.println(customer.toString()); transaction.commit(); }
HQL的别名查询
/* * HQL简单查询 * */ public void demo2() { Session session=HibernateUtils.openSession(); Transaction transaction=session.beginTransaction(); Query query=session.createQuery("from Customer c"); List<Customer> list=query.list(); for(Customer customer:list) System.out.println(customer.toString()); transaction.commit(); }
HQL的投影查询
查询对象的某个或某些属性
public void demo6() { Session session=HibernateUtils.openSession(); Transaction transaction=session.beginTransaction(); List<Object> list=session.createQuery("select c.cust_name from Customer c").list(); for(Object object:list) System.out.println(object); transaction.commit(); }