Hibernate 检索方式简介 1

在开发应用程序的时候,通常需要要用到hibernate到数据库中检索对象,hibernate提供了丰富的检索方式,具体有以下几种:

1 :导航对象的方式

2 :OID的方式进行检索

3 :HQL检索

4 :QBC检索方式

5:本地的SQL方式检索

 

下面将一一介绍这五种方式

1 :导航对象的方式就是我们常常用到的 "."的方式进行检索。例如 customer.orders的方式。这个很简单。

2:OID的方式,这个只要学习过Hibernate的就知道 get(),load()的方式就是利用OID的方式进行检索

3:HQL检索,这个是一个重点,所以详细的介绍一下.

HQL是一种使用广泛的检索方式,具有以下功能:

  * 在查询语句中设定各种条件

  * 支持投影

  * 支持分页

  * 支持连接查询

  * 支持分组查询

  * 支持内聚函数的查询

  * 能够调用用户自己定义的SQL函数和标准SQL函数

  * 支持子查询

  * 支持动态绑定参数

 

 

HQL的查询方式包括以下步骤:

   1 通过Sessio的CreateQuery()方法创建Query对象(可以包含命名参数)

   2 动态绑定参数

   3执行查询语句

from Customer as cus where c.name=:cusName

其中:cusName就是命名参数

我们可以对其进行赋值操作   query.setString("cusName","macower");

 

4:QBC的方式进行查询

/** * 一般的QBC查询示例 */ public void testQBC() { Session session = HibernateUtils.getSession(); Criteria c = session.createCriteria(Customer.class);// 关联类 SimpleExpression criteria1 = Restrictions.like("name", "custom", MatchMode.ANYWHERE);//设置查询条件 c.add(criteria1);//将设置的查询条件加入到集合当中 List<Customer> customers = c.list();//利用Criteria接口查询语句返回List类型的查询结果 for (Customer cus : customers) { System.out.println("Customer.Id = " + cus.getId() + " | Customer.name = " + cus.getName()); } } /** * 利用对象样板进行查询 */ public void testQBCTemp() { Session session = HibernateUtils.getSession(); Customer cusTmp = new Customer(); cusTmp.setName("customer1"); Criteria c = session.createCriteria(Customer.class).add(Example.create(cusTmp));// 利用样板类进行查询 List<Customer> customers = c.list();//利用Criteria接口查询语句返回List类型的查询结果 for (Customer cus : customers) { System.out.println("Customer.Id = " + cus.getId() + " | Customer.name = " + cus.getName()); } }

 

 

5:本地的SQL方式检索,这个只要你有SQL基础就可以写 利用Session的createSQLQuery() 查询即可。

 

下一节介绍 使用别名查询  分页查询, 排序检索单个对象 按主键逐个查询 对滚动结果集查询 等的介绍

 

你可能感兴趣的:(Hibernate 检索方式简介 1)