Hibernate学习(二)

来源:互联网 发布:金和软件官网 编辑:程序博客网 时间:2024/05/21 09:08

  • HQL联接查询
  • 本地SQL查询
  • Criteria查询标准查询
  • Restrictions常用限定查询方法
  • Criteria查询实现分页排序
    • 排序
    • 分页


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()设定查询返回结果的第一行数据的位置;

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

原创粉丝点击