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

最新文章

  1. 前端HTML规范
  2. SharePoint 2013 Designer系列之自定义列表表单
  3. SDK
  4. Java NIO 网络编程基础
  5. DM9000网卡驱动接受数据从中断方式改成NAPI方式小记
  6. Javascript中那些偏门的知识
  7. SimpleXML 使用详细例子
  8. Ubuntu15.04上为火狐浏览器安装Adobe Flash Player插件
  9. Jstorm调度定制化接口(0.9.5 及高版本)
  10. iptables防火墙详解
  11. JDK、JRE和JVM的关系
  12. 《Linux内核原理与设计》第五周作业
  13. C#效率优化(1)-- 使用泛型时避免装箱
  14. scala简单入门_wordCount
  15. C# iframe session 丢失
  16. 使用 kbmmw 的ORM开发纯REST数据库访问服务
  17. Linux 4.18内核系列已过时
  18. [Java] I/O底层原理之二:网络IO及网络编程
  19. [Unity3D]关于NaN(Not a Number)的问题
  20. Linux——文件处理命令简单学习总结

热门文章

  1. ajax 分页(jquery分页插件pagination) 小例2
  2. Oracle服务扫描工具Oscanner
  3. 随笔:Golang 时间Time
  4. Android图片缓存之初识Glide(三)
  5. 【CSS】获取元素的z-index值以及各种值的意义
  6. STL源代码剖析 容器 stl_deque.h
  7. HDU 4403 A very hard Aoshu problem (DFS暴力)
  8. LinearLayout具体解释三:LayoutInflater创建View过程分析
  9. 【搞机】9.7英寸iPad Pro 上手开箱(图文)
  10. 新建 .NET Core 控制台项目 C# 数组深拷贝