Hibernate学习笔记(5)---Query接口
Hibernate中具有三种检索方式(HQL,QBC,SQL)
Query接口
一个查询接口,用于向数据库中查询对象。并控制执行查询的过程。Query接口内封装了一个HQL查询语句。
举个栗子
//查询持久化类user Session session = sessionFactory.openSession(); //创建session实例
String hql ="from user as u where age>18"; //HQL语句,as别名可以省略不写
Query query = session.createQuery(hql);//创建query实例
List users = query.list();// 返回list集合
HQL运算符大致上与SQL的相似
| = | 等于 | <> | 不等于 |
| > | 大于 | < | 小于 |
| >= | 大于等于 | <= | 小于等于 |
| is null | 值为空 | is not unll | 值不为空 |
| in | 等于列表中的某一个值 | no in | 不等于列表中的某一个值 |
| between | 在两个值之间 | no between | 不在两个值之间 |
| like | 字符串匹配 | and | 逻辑与 |
| or | 逻辑或 | not | 逻辑非 |
查询所有
from+实体类名
Query query =session.createQuery(from User);
Liset<User> list = query.list();
条件查询
from +实体类名 +where 实体类名属性名 ?
Query query =session.createQuery(from User u where u.id=? and u.name=?);
query.setParameter(1,5);
query.setParameter(2,"小明");//向问号里面设置值,有几个问号设置几个
List<User> list = query.list();
排序查询
from 实体类 order by 实体类属性 asc(升)或者desc(降)
分页查询
mysql实现分页 limit关键字,而在hql中语句中不能写limit所有我们得用hibernate的query对象封装的两个类实现分页
Query query = session.createQuery(User);
//设置开始位置
query.setFirstResult(0);
//设置结束位置
query.setMaxResults(3);
投影查询
select 实体类属性名 1 ,实体类名2 from +实体类名
聚集函数查询
聚集函数 count记录数 , sum 相加, avg 平均, max 最大 ,min 最小
select count(*) from 实体类名
更新
使用executeUodate()方法
String hql ="update User set age=23 where age = 20"
Query query = session.createQuery(hql);
query.executeUpdate();
删除
通过使用executeUodate()方法也可以实现删除
String hql ="delete from User where age 20"
Query query = session.createQuery(hql);
query.executeUpdate();
ps:HQL语句它采用的面向对象的查询方式,并提供了丰富和灵活的查询特征,hibernate中将HQL作为官方推荐的标准查询方式。
下节:另外一种数据查询接口-----Criteria接口(QBC)
Hibernate学习笔记(5)---Query接口的更多相关文章
- Hibernate学习笔记-Hibernate HQL查询
Session是持久层操作的基础,相当于JDBC中的Connection,通过Session会话来保存.更新.查找数据.session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库 ...
- Hibernate学习笔记(二)
2016/4/22 23:19:44 Hibernate学习笔记(二) 1.1 Hibernate的持久化类状态 1.1.1 Hibernate的持久化类状态 持久化:就是一个实体类与数据库表建立了映 ...
- Hibernate学习笔记(一)
2016/4/18 19:58:58 Hibernate学习笔记(一) 1.Hibernate框架的概述: 就是一个持久层的ORM框架. ORM:对象关系映射.将Java中实体对象与关系型数据库中表建 ...
- Hibernate 学习笔记一
Hibernate 学习笔记一 今天学习了hibernate的一点入门知识,主要是配置domain对象和表的关系映射,hibernate的一些常用的配置,以及对应的一个向数据库插入数据的小例子.期间碰 ...
- Typescript 学习笔记六:接口
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- Java学习笔记之---比较接口与抽象类
Java学习笔记之---比较接口与抽象类 抽象类是描述事物的本质,接口是描述事物的功能 接口与抽象类的异同 1.一个类只能继承一个父类,但是可以有多个接口 2.抽象类中的抽象方法没有方法体,但是可以有 ...
- Hibernate学习笔记
一.Hibernate基础 1.Hibernate简介 Hibernate是一种对象关系映射(ORM)框架,是实现持久化存储的一种解决方案.Java包括Java类到数据库表的映射和数据查询及获取的方法 ...
- Hibernate学习笔记(五)—— Hibernate查询方式
一.对象图导航查询 对象图导航查询方式是根据已经加载的对象,导航到他的关联对象.它利用类与类之间的关系来查询对象.比如要查找一个联系人对应的客户,就可以由联系人对象自动导航找到联系人所属的客户对象.当 ...
- Hibernate学习笔记(二)—— 实体规则&对象的状态&一级缓存
一.持久化类 1.1 什么是持久化类? Hibernate是持久层的ORM映射框架,专注于数据的持久化工作.所谓的持久化,就是将内存中的数据永久存储到关系型数据库中.那么知道了什么是持久化,什么又是持 ...
随机推荐
- 从 Bridge 到 OVS,探索虚拟交换机
Linux Bridge 和物理网络一样,虚拟网络要通信,必须借助一些交换设备来转发数据.因此,对于网络虚拟化来说,交换设备的虚拟化是很关键的一环. 上文「网络虚拟化」已经大致介绍了 Linux 内核 ...
- hdu 4409 Family Name List(LCA&有坑点)
Family Name List Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- OSX: Scripts,让BootCamp在不论什么Mac上支持生成Windows7的USB安装盘
为什么要做这个呢,由于BootCamp仅仅有在默认的Mac上才会有生成USB安装盘的选项.这个脚本就是为了确保用户使用它在不论什么一个Mac机器上都能够生成Windows的USB安装盘.当然了,假设你 ...
- Hibernate的load()和get()区别
最近在用Hibernate的时候发现一个问题:比如我们从数据库获得一个对象时,使用session.get()方法还是session.load()? 两种方法在获得一个实体对象时是有区别的,在查询性能 ...
- ABP入门系列(21)——切换MySQL数据库
ABP入门系列目录--学习Abp框架之实操演练 源码路径:Github-LearningMpaAbp 1. 引言 Abp支持MySql已经不是什么新鲜事了,但按照官方文档:Entity Framewo ...
- 一、Spring Cloud介绍
springcloud 介绍 研究了一段时间spring boot了准备向spirng cloud进发,公司架构和项目也全面拥抱了Spring Cloud.在使用了一段时间后发现Spring Clou ...
- 【java】泛型的作用是在编译阶段防止错误输入,绕过编译就绕过泛型,可用反射验证
package com.tn.collect; import java.lang.reflect.Method; import java.util.ArrayList; public class Fa ...
- 如何高效撤销Git管理的文件在各种状态下的更改
一.背景 企业中我们一般采用分布式版本管理工具git来进行版本管理,在团队协作的过程中,我们难免会遇到误操作,需要撤销更改的情况,那么我们怎么高效的进行撤销修改呢?对于还未提交到暂存区的代码怎么高效撤 ...
- ArcGIS API for JavaScript 4.3学习笔记[新] AJS4.3和AJS3.20新特性
今天"ArcGIS极客说"公众号推送了这两个大版本的更新,吓得我赶紧撸了一篇新博客. 这里就不写代码验证了,作为新特性小节简单介绍一下!~ AJS 4.3 1. 更强大的Featu ...
- Who Will Win?
Gautam and Subhash are two brothers. They are similar to each other in all respects except one. They ...