Hibernate主要查询方式

1.hql查询

1.1 无参数的hql查询

1.2 带参的hql查询(分为问号占位和字符占位两种)

Ps: 绑定各种类型的参数时用setParameter()绑定参数,如封装方法后用不定参数时循环绑定参数;也可以使用setProperties()动态绑定,但是不如criteria查询

2.特殊hql查询方法

2.1 uniqueResult()查询唯一结果

需要注意的是,当查询结果不唯一时,会报NonUniqueResultException的错,谨慎使用该方法

2.2 分页查询

2.3 投影查询

返回值是Object集合,下标与语句中属性值顺序相对应

2.4 将查询结果通过构造函数封装成对象

String hql = “select new Emp(empName,salary) from Emp”;

Emp类中必须要有该构造函数,或者新建一个javabean

3.原生SQL查询

使用createSQLQuery()方法,方法参数为原生SQL语句,并提供addEntity()方法将查询结果集中的关系数据映射为对象,否则用Object数据的集合来接收

4.命名查询

4.1 hql查询语句的命名查询

在映射文件中使用<query>元素定义HQL语句,与<class>元素并列

使用的时候调用getNamedQuery()方法,参数为<query>元素中的name属性值,并可以链式设置参数

4.2 sql查询语句的命名查询

Sql语句包裹在<sql-query>元素中,增加一个return元素,alias属性为操作的表取别名,class属性则表示映射的实体类

调用时使用相同的getNamedQuery()方法

5.Criteria查询

5.1使用步骤

<a>使用Session接口的createCriteria()方法创建Criteria对象

<b>使用Restrictions类提供的静态方法设置查询条件,这些静态方法返回Criterion对象,一个Criterion对象代表一个查询条件。Criteria接口的add()方法用来添加查询条件,也可以设置分页

<c>使用Criteria接口的list()方法执行查询语句

5.2 Restrictions类的各种静态方法

(1) eq(String propertyName,Object value) 等于

(2) ne(String propertyName,Object value) 不等于

(3) gt(String propertyName,Object value) 大于

(4) ge(String propertyName,Object value) 大于等于

(5) lt(String propertyName,Object value) 小于

(6) le(String propertyName,Object value) 小于等于

(7) isNull(String propertyName) 等于空值

(8) isNotNull(String propertyName) 不等于空值

5.3查询范围关键字

(1)in(String propertyName,Collection values)或

In(String propertyName,Object[] values) 等于列表中的某一个值

(2)not in 不等于列表中的任意一个值

(3)Between(String propertyName, Object low,Object high)

大于等于low值并且小于等于high

(4)not Between(String propertyName, Object low,Object high)

小于low值或者大于high

(5)like/ilike(String propertyName,Object value)或

like/ilike(String propertyName,Object value,MatchMode matchMode)

根据字符串和匹配模式进行匹配

匹配模式:START   以字符串开头

END 以字符串结束

ANYWHERE 字符串出现在任何位置

EXACT 精确匹配

5.4 连接查询(只支持内连接和迫切左外连接)

时间: 2024-10-27 06:58:53

Hibernate主要查询方式的相关文章

hibernate的查询方式

hibernate的查询方式常见的主要分为三种: HQL, QBC(Query By Criteria)查询, 以及使用原生SQL查询 HQL查询 • HQL(Hibernate Query Language)提供了丰富灵活的查询方式,使用HQL进行查询也是Hibernate官方推荐使用的查询方式. • HQL在语法结构上和SQL语句十分的相同,所以可以很快的上手进行使用.使用HQL需要用到Hibernate中的Query对象,该对象专门执行HQL方式的操作. 查询所有示例 session.be

Hibernate的查询方式(简要)

Hibernate的查询方式 1.OID检索: 使用session.get(Object.class,oid),session.load(Object.class,oid),根据表的主键查询 2.对象导航检索以及联级映射的配置: 根据已有对象查询与之对应的另外一些对象,比如一个Customer对象中有一个Linkmans(联系人对象)集合,当查询出Customer后,直接变量linkMans集合就可以查询到与之对应的联系人配置文件: 一对一:<one-to-one name="User&q

4、Hibernate的查询方式

一.Hibernate的查询方式:OID查询 1.OID检索:Hibernate根据对象的OID(主键)进行检索 1-1.使用get方法 Customer customer = session.get(Customer.class,1L); 1-2.使用load方法 Customer customer = session.load(Customer.class,1L); 3.对象导航检索:Hibernate根据一个已经查询到的对象,获得其关联的对象的一种查询方式. Customer custom

Hibernate框架查询方式

1. 唯一标识OID的检索方式 * session.get(对象.class,OID) 2. 对象的导航的方式 public class Demo { /** * 演示对象导航的方式 */ @Test public void run1() { Session session = HibernateUtils.getCurrentSession(); Transaction tx = session.beginTransaction(); //先查询1号客户通过OID查询 Customer cus

hibernate select 查询方式总结

1. 查询整个映射对象所有字段 Java代码 //直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段 String hql = "from Users"; Query query = session.createQuery(hql); List<Users> users = query.list(); for(Users user : users){ System.out.println(user.getName() + " : " +

hibernate(七) hibernate中查询方式详解

序言 之前对hibernate中的查询总是搞混淆,不明白里面具体有哪些东西.就是因为缺少总结.在看这篇文章之前,你应该知道的是数据库的一些查询操作,多表查询等,如果不明白,可以先去看一下 MySQL数据表查询操作详解  ,以至于看这篇文章不用那么吃力. --WH 一.hibernate中的5种检索方式 1.1.导航对象图检索方式 根据已经加载的对象导航到其他对象 例如:在前面的各种映射关系中,实体类包含对其他类对象的引用. Dept d = (Dept) session.get(Dept.cla

Hibernate学习(七)———— hibernate中查询方式详解

序言 之前对hibernate中的查询总是搞混淆,不明白里面具体有哪些东西.就是因为缺少总结.在看这篇文章之前,你应该知道的是数据库的一些查询操作,多表查询等 --WH 一.hibernate中的5种检索方式 1.1.导航对象图检索方式 根据已经加载的对象导航到其他对象 例如:在前面的各种映射关系中,实体类包含对其他类对象的引用. Dept d = (Dept) session.get(Dept.class,2); d.getStaffSet().size(); //d对象关联Staff集合,h

Hibernate查询方式 一

Hibernate查询方式 说到hibernate的查询方式,我们自然而然就想到了它--hql,hibernate query language.hql是使用hibernate框架的变成配朋友们使用最多的一种方式,它以自身的独特的优势:屏蔽数据库,书写灵活的优点,备受大家的青睐.但是Hibernate不仅给我们提供了这一种查询方式,这时候悠然要说来,是不只一种,还有sql,对,确实还有sql,但是还有一种,就是Criteria 查询.那么今天,我们就来聊一聊hibernate的几种查询方式. H

hibernate的三种查询方式

hibernate的查询方式常见的主要分为三种: HQL, QBC, 以及使用原生SQL查询(Session的查询) 1)Query的查询:使用HQL语句或SQL语句完成查询 2)Criteria的查询:通过方法和类中属性的关系,来设置查询条件,完成查询. 3)Session的查询:按主键查询查询,方法为get或load 一.HQL查询 ? HQL(Hibernate Query Language)提供了丰富灵活的查询方式,使用HQL进行查询也是Hibernate官方推荐使用的查询方式. ? H