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的更多相关文章

  1. hibernate的hql查询

    1.概念介绍 1.Query是Hibernate的查询接口,用于从数据存储源查询对象及控制执行查询的过程,Query包装了一个HQL查询语句. 2.HQL是Hibernate Query Langua ...

  2. Hibernate之HQL查询

    一.Hibernate 提供了以下几种检索对象的方式: 导航对象图检索方式: 根据已经加载的对象导航到其他对象 OID 检索方式: 按照对象的 OID 来检索对象 HQL 检索方式:使用面向对象的 H ...

  3. Hibernate之HQL介绍

    Hibernate中提供了多种检索对象的方式,主要包括以下种类: 导航对象图检索方式:根据已经加载的对象导航到其他对象 OID检索方式:根据对象的OID来检索对象 HQL检索方式:使用面向对象的HQL ...

  4. Hibernate-ORM:15.Hibernate中的Criteria查询

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 本篇博客讲师Hibernate中的Criteria查询! 一,Criteria简介: 刚接触Hibernate ...

  5. Hibernate框架之Criteria 详解

    自从学数据库以来,从SQL查询-HQL查询-到Criteria 查询.有人问我:掌握一种查询语句不就可以吗,为什么还要学Criteria 查询?我回答道:用到特定于数据库的SQL 语句,程序本身会依赖 ...

  6. Hibernate之HQL基本用法

    关于HQL HQL与SQL非常类似,只不过SQL的操作对象是数据表,列等对象,而HQL操作的是持久化类,实例,属性等. HQL是完全面向对象的查询语言,因此也具有面向对象的继承,多态等特性. 使用HQ ...

  7. Hibernate学习-Hibernate查询语言HQL

    HQL(Hibernate Query Language)Hibernate查询语言,语法类似于SQL,可以直接使用实体类及属性. 使用HQL 可以避免使用JDBC 查询的一些弊端 不需要再编写繁复的 ...

  8. Hibernate五 HQL查询

    HQL查询一 介绍1.HQL:Hibernate Query Language,是一种完全面向对象的查询语言.使用Hibernate有多重查询方式可供选择:hibernate的HQL查询,也可以使用条 ...

  9. Hibernate中HQL函数汇总及获取当前时间进行比较举例

    在很多时候,我们负责的项目中,在数据访问层(DAO层)通常我们会使用sql语句或者hql语句,而在我们使用hql语句拼接时有时会报错,通常的原因是:我们使用了标准的sql语句,开启的确是hiberna ...

随机推荐

  1. java 开发工具记录

    jenkins 持续构建项目 lombok  优雅代码插件 sonarqube 代码检测插件

  2. elasticsearch6.x集群环境部署

    elasticsearch集群部署安装jdk chmod 755 jdk-8u161-linux-x64.tar.gztar -zxvf jdk-8u161-linux-x64.tar.gzcp jd ...

  3. Unity3D介绍

    Unity3D介绍:Unity3D是一个游戏开发引擎 由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型互动内容的多平台的综合型游戏开发工具 ...

  4. Windows Server 2008 R2提示api-ms-win-crt-runtime-l1-1-0.dll 丢失解决方法

    在一台服务器的全新windows Server 2008 R2 服务器上配置php运行环境, 在启动Apache之后,显示下图错误: 解决方法: 1.安装VC redit.exe程序解决 是VC的一个 ...

  5. 极简Python DeBug工具——PySnooper

    DeBug Python 代码的方式有很多种?比如: (1)设置断点 (2)print函数 (3)... 本文要介绍的是一个新开源的项目PySnooper ,只要给有疑问的代码加上装饰器,各种信息一目 ...

  6. windows系统下的特殊目录导致的FileNotFoundException

    环境:下面只有JDK(内含jre),没有外在的jre 读取的两个文件都是存在的,只是文件名不同 运行结果1 运行结果2 切换JDK 运行结果3: 运行结果4: 请留意:C:\windows\syste ...

  7. kettle变量(param命名参数2)

    接arg参数: 通过命令行进行变量赋值和引用 定义跟界面定义相同: 赋值(转换): 运行命令到kettle目录下 pan /file:path "/param:aa="bb&quo ...

  8. mongodb备份还原

    备份:mongodump mongodump常用参数 --db:指定导出的数据库 --collection:指定导出的集合 --excludeCollection:指定不导出的集合 --host :远 ...

  9. Vue.js 2.x笔记:基本语法(2)

    1. Vue实例及选项 1.1 创建Vue实例(new Vue instance) 每个Vue Application必须创建一个root Vue Instance. <script> v ...

  10. sqlserver2008R2 评估期已过

    早上打开win程序-卡死不动了,查看三层数据库连接-连接不上数据库 打开数据库-提示 评估期已过 解决方法: 进入sqlserver的安装中心-点击 维护-版本升级 输入密钥:企业版:R88PF-GM ...