zoukankan      html  css  js  c++  java
  • Hibernate学习(二)


    HQL联接查询

    HQL支持的联接类型
    这里写图片描述

    内联接:

    • 语法:from Entity inner join [fetch] Entity.property
    • 忽略fetch关键字,我们得到的结果集中,每行数据都是一个Object数组

    本地SQL查询

    Hibernate对本地SQL查询提供了内置的支持:

    • Session的createSQLQuery()方法返回SQLQuery对象
    • SQLQuery接口继承了Query接口
    • SQLQuery接口的addEntity()方法将查询结果集中关系数据映射为对象
    • 通过命名查询实现本地SQL查询

    通过命名查询实现本地SQL查询:

    • 使用<sql-query>元素定义本地SQL查询语句
    • 与<class>元素并列
    • 以<![CDATA[SQL]]>方式保存SQL语句
    • 通过Session对象的getNamedQuery()方法获取该查询语句。

    这里写图片描述

    //原生SQL
        @Test
        public void test12(){
            String hql= "select * from h_user";
            SQLQuery query=session.createSQLQuery(hql);
            //设置结果集转换的类型
            query.addEntity(User.class);
            List<User> list = query.list();
            System.out.println(list);
        }
    

    Criteria查询(标准查询)

    Criteria查询采用面向对象方式封装查询条件,又称为对象查询
    对SQL语句进行封装
    采用对象的方式来组合各种查询条件
    由Hibernate 自动产生SQL查询语句
    Criteria由Hibernate Session进行创建
    

    这里写图片描述

    这里写图片描述


    Restrictions常用限定查询方法

    这里写图片描述


    Criteria查询实现分页、排序

    排序

    Criteria查询不仅能组合出SQL中where子句的功能,还可以组合出排序查询功能;

    使用org.hibernate.criterion.Order对结果进行排序;

    排序的方法为:

    • asc()
    • desc()

    分页

    Criteria的setMaxResults()方法可以限定查询返回数据的行数;

    Criteria的setFirstResult()设定查询返回结果的第一行数据的位置;

    结合以上的两个方法即可实现简单分页。

  • 相关阅读:
    LeetCode
    LeetCode
    控制反转(Ioc)
    KMP算法
    *&m与m的区别
    函数指针与函数指针数组的使用方法
    C++四种类型转换
    内存分配:堆内存,栈内存
    汇编 基础
    i++,++i 作为参数
  • 原文地址:https://www.cnblogs.com/aixing/p/13327636.html
Copyright © 2011-2022 走看看