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 连接查询(只支持内连接和迫切左外连接)

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

  1. Hibernate的查询方式总结

    Hibernate的查询方式大体有三种,分别是HQL QBC和SQL三种.在网上查阅一一些资料,做了一个简单的总结. 1. SQL sql 是面向数据库表查询,from 后面跟的是表名,where 后 ...

  2. 4、Hibernate的查询方式

    一.Hibernate的查询方式:OID查询 1.OID检索:Hibernate根据对象的OID(主键)进行检索 1-1.使用get方法 Customer customer = session.get ...

  3. Hibernate的查询方式

    Hibernate的查询的方式 OID检索 get或load方法进行的查询 对象导航检索 linkman.getCustomer(); HQL检索 用于接收hql语句进行查询,面向对象查询方式. 通过 ...

  4. Hibernate各种查询方式及查询策略(转)

    转自:https://www.cnblogs.com/xujingyang/p/6734203.html 在了解Hibernate的基本知识后,重点让我们看下相关查询方式和查询优化策略吧! 话不多说, ...

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

    序言 之前对hibernate中的查询总是搞混淆,不明白里面具体有哪些东西.就是因为缺少总结.在看这篇文章之前,你应该知道的是数据库的一些查询操作,多表查询等,如果不明白,可以先去看一下 MySQL数 ...

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

    序言 之前对hibernate中的查询总是搞混淆,不明白里面具体有哪些东西.就是因为缺少总结.在看这篇文章之前,你应该知道的是数据库的一些查询操作,多表查询等 --WH 一.hibernate中的5种 ...

  7. Hibernate的查询方式汇总

    分别是HQL查询,对象化查询Criteria方法,动态查询DetachedCriteria,例子查询,sql查询,命名查询. 如果单纯的使用hibernate查询数据库只需要懂其中的一项就可以完成想要 ...

  8. hibernate的查询方式的介绍(一)

    1.对象导航查询 2.OID查询 3.hql(hibernate query language)查询 4.QBC查询 5.本地sql查询 在这里先介绍其中两种 1.hibernate的对象导航查询 ( ...

  9. hibernate select查询方式总结

    https://www.cnblogs.com/xingege/p/4270990.html

随机推荐

  1. getID3类的学习使用

    getID3类的学习使用 网上描述: getID3()这个PHP脚本能够从MP3或其它媒体文件中提取有用的信息如:ID3标签,bitrate,播放时间等. (格式包括:Ogg,WMA,WMV,ASF, ...

  2. 编译 Android 版本的 Opus 音频编解码库的方法

    Opus 音频编解码库是 Speex 音频编解码库的下一代版本,从编解码性能以及质量上来讲都有了长足的进步.Opus 的编译非常简单,但是官方并未给出详细的 Android 版本编译指南,查找了大量资 ...

  3. 洛谷——P1588 丢失的牛

    P1588 丢失的牛 题目描述 FJ丢失了他的一头牛,他决定追回他的牛.已知FJ和牛在一条直线上,初始位置分别为x和y,假定牛在原地不动.FJ的行走方式很特别:他每一次可以前进一步.后退一步或者直接走 ...

  4. Xamarin XAML语言教程对象元素的声明方式

    Xamarin XAML语言教程对象元素的声明方式 XAML的对象元素的声明有两种形式,分别为包含属性的特性语法形式以及对象元素语法形式.在1.4小节中,我们看到了其中一种对XAML对象元素的声明方式 ...

  5. Light oj 1134 - Be Efficient (前缀和)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1134 题意: 给你n个数,问你多少个连续的数的和是m的倍数. 思路: 前缀和取 ...

  6. Java 浅析,生成OFD文件

    摘要:这几天遇到个需要,需要提供用户下载电子证照,最简单的方法实现:word做了一份模板,利用网页工具转成OFD文件,http://www.yozodcs.com/page/example.html用 ...

  7. error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools":解决方案

    我是在安装scrapy时遇到这个问题的,安装其他组件也可能会遇到.但问题解决办法都是大致相同的. 以安装scrapy为例: 在pycharm中安装twisted时出现: error: Microsof ...

  8. datetimepicker使用总结

    datetimepicker使用总结 2019-03-06    16:55:00 使用效果: 官方教程:http://www.bootcss.com/p/bootstrap-datetimepick ...

  9. HDU2256-Problem of Precision(矩阵构造+高速幂)

    pid=2256">题目链接 题意:求sqrt(sqrt(2) + sqrt(3)) ^ 2n MOD 1024 思路: 代码: #include <iostream> # ...

  10. hdu1034 简单模拟

    这里开一个二维数组.num[105][2];   我也不知道N有多少,随便开的,  那么这里num[i][0] 表示当前 第 i 个人拥有的糖果数,num[i][1]表示他上面一个人分给他的糖果数.详 ...