Hibernate检索方式 一

8 篇文章 0 订阅
7 篇文章 0 订阅

一.OID检索方式:按照对象的OID来检索对象

l get()/load();方法进行检索

   HQL检索方式:使用面向对象的HQL查询语言 

使用:创建Query接口

HQL(Hibernate Query Language)是面向对象的查询语言,它和sql查询语言相似。在hibernate提供的各种检索方式中,HQL是使用最广泛的一种检索方式。比如以下功能:

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

l 支持投影查询

l 支持分页查询

l 支持链接查询

l 支持分组查询

l 提供内置聚集函数
比如:sum() min() max()

l 能够调用用户自定义的sql函数

l 支持子查询

l 支持动态绑定

HQL检索方式包括以下步骤:

l 通过Session的createQuery()方法创建一个Query对象,它包括一个HQL查询语句。HQL查询语句中可以包含命名参数

l 动态绑定参数

l 调用Query的list()方法执行查询语句。该方法返回java.util.List类型的查询结果,在List集合中存放了符合查询条件的持久化对象

QBC检索方式:使用QBC来检索对象

   使用sql查询所有记录

 *SQL    Query query = session.createSQLQuery(“SQL”);

HQL与SQL

l HQL查询语句是面向对象的,Hibernate负责解析HQL查询语句,然后根据对性爱那个-关系映射文件中的映射信息,把HQL查询语句翻译成响应的SQL语句,HQL查询语句中的主体是域模型中的类及类的属性

l SQL查询语句是与关系数据库绑定在一起的,SQL查询语句的主体是数据库表及表的字段

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述



测试类:
   @Test
   public void test2() {
 	 Session  session = HibernateUtil.openSession();
         Transaction tx = session.beginTransaction();

	//使用HQL查询所有客户信息  不支持sql语句  比如:select
	* from Student ✖ 

	// List<Student>
	list = session.createQuery("from Student").list();         
	//  for
	//(Student student : list) {
	// System.out.println(student);

	// }

 	  //使用QBC的方式查询所有记录
	
	//   List<Student>
	list = session.createCriteria(Student.class).list();
	          
	//for(Student student : list) {
	// System.out.println();
	//  }

	 //使用sql查询所有记录
	//List<Object[]>
	list = session.createSQLQuery("select * from Student").list();
	//for(Object[] objects : list) {
	//System.out.println(Arrays.toString(objects));
	//           }

              	
	List<Student> list = session.createSQLQuery("select *     from  Student") .addEntity(Student.class).list();
         
       for(Student student : list) {
  	  System.out.println(student);
	 }

	 tx.commit();

	session.close();

 
   }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值