hibernate之HQL,Criteria与SQL
HQL是针对封装好的对象。
HQL :hibernate自己用的sql语句 -------HQL不能出现表中的任何内容 ---------不经常使用开发中
基本查询:String hql = "from com.sikiedu.domain.User";
Query query = session.createQuery(hql);
List<User> list = query.list();//查询所有
User user = (User) query.uniqueResult();//查询唯一数据
条件查询:
基本条件查询:hql = "from com.sikiedu.domain.User where id = 1";
?占位符查询: hql = "from com.sikiedu.domain.User where id = ?0 ?1 ?2"
Query query = session.createQuery(hql);
设置参数
query.setParameter(0,id);query.setString(0,id)
命名占位符查询:hql = "from com.sikiedu.domain.User where id = :id"
query.setParameter("id",value(传参id))
分页查询:limit ?,?
hql = "from com.sikiedu.domain.User"
Query query = session.createQuery(hql);
query.setFirstResultd(0); //设置起始索引
query.setMaxResults(1); //设置最大索引
List<User> list = query.list();
Criteria :
基本查询:CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder(); //得到CriteraBuilder 对象
CriteriaQuery<User> createQuery = criteriaBuilder.createQuery(User.class);//查询 条件(首先知道查询什么类型数据)
Root<User> root= createQuery.from(User.class);//从User中查询
createQuery.select(root)//
List<User> resultList = session.cresteQuery(createQuery).getResultList();//执行查询
条件查询:createQuery.select(root).where(root.get("id").in("1"))//条件查询,得到id==1的对象
分页查询:
查询总记录数:CriteriaQuery<Long> criteria= criteriaBuilder.createQuery(Long.class);
Root<User> root= criteria.from(User.class);
criteria.select(criteriaBuilder.count(root));//criteriaBuilder.可以查询各种数
Long count = session.createQuery(criteria).uniqueResult();
criteriaBuilder查询记录数: 
sql
基本查询:
String sql = ""; NativeQuery query= session.createSQLQuery(sql);//创建sql查询表
query.addEntity(User.class);//自动封装成User对象数据
List<User> list = query.list();
System.out.println(list);
条件查询: 给?赋值
query.setParameter(1,"3");//从1开始从hinernate5.x
分页查询:
hibernate之HQL,Criteria与SQL的更多相关文章
- hibernate的hql查询
1.概念介绍 1.Query是Hibernate的查询接口,用于从数据存储源查询对象及控制执行查询的过程,Query包装了一个HQL查询语句. 2.HQL是Hibernate Query Langua ...
- Hibernate之HQL查询
一.Hibernate 提供了以下几种检索对象的方式: 导航对象图检索方式: 根据已经加载的对象导航到其他对象 OID 检索方式: 按照对象的 OID 来检索对象 HQL 检索方式:使用面向对象的 H ...
- Hibernate之HQL介绍
Hibernate中提供了多种检索对象的方式,主要包括以下种类: 导航对象图检索方式:根据已经加载的对象导航到其他对象 OID检索方式:根据对象的OID来检索对象 HQL检索方式:使用面向对象的HQL ...
- Hibernate-ORM:15.Hibernate中的Criteria查询
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客讲师Hibernate中的Criteria查询! 一,Criteria简介: 刚接触Hibernate ...
- Hibernate框架之Criteria 详解
自从学数据库以来,从SQL查询-HQL查询-到Criteria 查询.有人问我:掌握一种查询语句不就可以吗,为什么还要学Criteria 查询?我回答道:用到特定于数据库的SQL 语句,程序本身会依赖 ...
- Hibernate之HQL基本用法
关于HQL HQL与SQL非常类似,只不过SQL的操作对象是数据表,列等对象,而HQL操作的是持久化类,实例,属性等. HQL是完全面向对象的查询语言,因此也具有面向对象的继承,多态等特性. 使用HQ ...
- Hibernate学习-Hibernate查询语言HQL
HQL(Hibernate Query Language)Hibernate查询语言,语法类似于SQL,可以直接使用实体类及属性. 使用HQL 可以避免使用JDBC 查询的一些弊端 不需要再编写繁复的 ...
- Hibernate五 HQL查询
HQL查询一 介绍1.HQL:Hibernate Query Language,是一种完全面向对象的查询语言.使用Hibernate有多重查询方式可供选择:hibernate的HQL查询,也可以使用条 ...
- Hibernate中HQL函数汇总及获取当前时间进行比较举例
在很多时候,我们负责的项目中,在数据访问层(DAO层)通常我们会使用sql语句或者hql语句,而在我们使用hql语句拼接时有时会报错,通常的原因是:我们使用了标准的sql语句,开启的确是hiberna ...
随机推荐
- 一起刷LeetCode
题目列表: 题目 解答 26. 删除排序数组中的重复项 https://www.cnblogs.com/powercai/p/10791735.html 25. k个一组翻转链表 https://ww ...
- Java8-2-Lambda表达式实战-一句话实现Map中按照Value排序
在上一讲中, 我们着重的讲了表达式的一些基础知识和基本的使用, 今天我们来实战一把, 对Map的Value值排序进行简化. 在以前的思路我们的做法如下: /** * * Map根据value排序; * ...
- [原创]基于SpringAOP开发的方法调用链分析框架
新人熟悉项目必备工具!基于SpringAOP开发的一款方法调用链分析插件,简单到只需要一个注解,异步非阻塞,完美嵌入Spring Cloud.Dubbo项目!再也不用担心搞不懂项目! 很多新人进入一家 ...
- js实现分段上传文件
使用js实现分段上传文件,本文使用了FileReader对象,可参考:https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader 1)获取文 ...
- django开发新手教程(原创)
为了帮助新手简单高效解决django开发的问题,从而写了这么一篇,随便转载! 本人用的是windows10操作系统 #联网安装 ==指定版本号 我在自定义的www文件夹安装C:\Users\ ...
- Element ui 日期限制范围
时间限定范围: <el-date-picker type="date" placeholder="选择日期" v-model="addForm. ...
- 02-Django框架介绍
02-Django框架介绍 1.MVC框架介绍 MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式 具有耦合性低.重用性高.生 ...
- linux下下载安装jdk
jdk的安装 一:到oracl官网下载你所需要的jdk版本; https://www.oracle.com/technetwork/java/javase/downloads/index.html 拉 ...
- Python中的 sort 和 sorted
今天在做一道题时,因为忘了Python中sort和sorted的用法与区别导致程序一直报错,找了好久才知道是使用方法错误的问题!现在就大致的归纳一下sort和sorted的用法与区别 1. sort: ...
- QQ浏览器、火狐浏览器中页面有点大的问题记录
做页面时候,发现火狐和腾讯QQ浏览器有个问题,就是会将页面显示的比较大,像点了缩放比例120%似的,事实上缩放比例是100%,很奇怪. 甚至面对这个问题,连腾讯公司主页也会放大,也让我很困惑. 比如: ...