Hibernate查询学习小结

Hibernate的查询方式

在Hibernate中共提供了5种查询方式

1.通过OID查询:

OID检索:根据对象的OID(主键)进行检索

1.使用get方法

User user=session.get(User.class,1)

2.使用load方法

User user=sesson.loda(User.class,1)

2.对象导航检索:

对象导航检索:Hibernate根据一个已经查询到的对象,获得其关联的对象的一种查询方式。

3.HQL检索:

HQL查询:Hibernate Query Language,Hibernate的查询语言,是一种面向对象的方式的查询语言,语法类似SQL。通过session.createQuery(hql),用于接收一个HQL进行查询方式。

步骤:

  1. 获取Session对象

  2. 调用Session对象的createQuery方法创建查询对象,在方法中传入HQL语句

  3. 如果HQL语句有参数(占位符),那么通过查询对象的setParameter或者方法设置参数

  4. 调用查询对象的方法执行查询:list(),uniqueResult()

4.QBC检索:

QBC查询:Query by Criteria,使用Criteria接口,Criteria是完全面向对象的接口,通过该接口可以不考虑数据库底层的实现,或者sql的编写,由Hibernate进行操作

(Hibernate5.2以前)使用步骤

  1. 获取Session对象

  2. 通过Session对象获取Criteria对象

  3. 通过Restrictions的静态方法完成对Criteria的查询对象的创建

  4. 将条件对象添加到Criteria对象中,使用add方法

  5. 执行Criteria对象的list()或uniqueResult()

5.SQL检索:

通过使用SQLquery接口使用,该接口可以接受一个sql语句,然后调用list()或者uniqueResult()进行查询

 

Session session =HibernateUtils.openSession();//自己写的工具类获取session
SQLQuery sqlQuery=session.CreateSQLQuery("select * from user");
sqlQuery.addEntity(User.class);
List<User> list=sqlQuery.list();

 

SQLQuery查询结果不会直接封装到实体对象中,需要手动添加代码

 

//将返回的数据对象封装到对象
sqlQuery.addEntity(User.class)

 

posted @ 2019-09-28 22:24  她曾活过  阅读(67)  评论(0)    收藏  举报