• Hibernate 检索方式之 HQL 检索方式


    HQL(Hibernate Query Language) 是面向对象的查询语言,它和 SQL 查询语言有些相似。在 Hibernate 提供的各种检索方式中,HQL 是使用最广的一种检索方式,它有如下功能:

      -在查询语句中设定各种查询条件

      -支持投影查询,即检索出对象的部分属性

      -支持分页查询

      -支持连接查询

      -支持分组查询,允许使用 HAVING 和 GROUP BY 关键字

      -提供内置聚集函数,如 sum()、min()、max()

      -支持子查询

      -支持动态绑定参数

      -能够调用用户定义的 SQL 函数或标准的 SQL 函数

    HQL 检索方式包括以下步骤:

      -通过 Session 的 createQuery()方法创建一个 Query 对象,它包括一个 HQL 查询语句。HQL 查询语句中可以包含命名参数

      -动态绑定参数

      -调用 Query 相关方法执行查询语句

    Query 接口支持方法链编程风格,它的 setXxx()方法返回自身实例,而不是 void 类型

    HQL vs SQL:

      -HQL 查询语句是面向对象的,Hibernate 负责解析 HQL 查询语句,然后根据对象-关系映射文件中的映射信息,把 HQL 查询语句翻译成相应的 SQL 查询语句。HQL 查询语句中的主体是域模型中的类及类的属性

      -SQL 查询语句是与关系数据库绑定在一起的,SQL 查询语句中的主体是数据库表及表的字段

    绑定参数:

      -Hibernate 的参数绑定机制依赖于 JDBC API 中的  PreparedStatement 的预定义 SQL 语句功能

      -HQL 参数绑定有两种形式:

        --按参数名字绑定:在 HQL 查询语句中定义命名参数,命名参数以“:”开头。

        --按参数位置绑定:在 HQL 查询语句中用“?”来定义参数位置

      -相关方法:

        --setEntity():把参数与一个持久化类绑定

        --setParameter():绑定任意类型的参数。该方法的第三个参数显式指定 Hibernate 映射类型

    HQL 采用 ORDER BY 关键字对查询结果排序

            // 1. 创建 Query 对象
            String hql = "FROM Employee e WHERE e.id < ?";
            Query query = session.createQuery(hql);
            
            // 2. 绑定参数
            query.setInteger(0, 130);
            
            // 3. 执行查询
            List<Employee> employees = query.list();
            System.out.println(employees.size());            
  • 相关阅读:
    抓包
    tk(三)按钮的事件绑定
    python xlrd 模块(获取Excel表中数据)
    使用pycharm搜索框和正则表达式匹配内容
    Progressbar 实例
    python获取时间
    excel用xlrd日期变成42631.0
    Python中super的用法【转载】
    python类的继承和多态
    均值的性质及其应用
  • 原文地址:https://www.cnblogs.com/zyx1301691180/p/7719613.html
Copyright © 2020-2023  润新知