zoukankan      html  css  js  c++  java
  • Hibernate查询

    一.掌握Hibernate检索策略?

    检索(查询)策略分为3类:

    立即加载(lazy=“false”)—— 不管用户是否使用该数据始终执行查询。

    延迟加载(lazy=“true”)—— 用户使用的时候,才执行查询;否则不查询。

    注意:延迟加载必须在session关闭之前使用。

    迫切左外连接(outer-join=“true”、fetch=“join”)—— 联合查询(推荐使用方式)。

    总结:查询数据时,立即、延迟都会生成多条SQL语句;迫切左外连接会使用联合查询,只会生成一条SQL语句。

    batch-size:表示进行批量检索数据。(将多条SQL语句合并成一条SQL(使用in关键字进行查询));(只有立即、延迟加载时有效)

    二.掌握HQL查询?

    HQL查询语句:Hibernate中支持的查询语句。

    2.1 为什么需要使用HQL查询,而不是使用标准SQL进行查询?

    Hibernate需要支持所有数据库的查询。

    2.2 如何使用HQL进行查询?

    使用Session中的Query对象,进行查询。

    注意:HQL语句查询的是类、属性(而不是表名、列名);HQL中的关键字不区分大小写,但是类、属性严格区分大小写。

    常见的HQL查询语句:

    查询指定列:

    方式一:

    select 属性名1,属性名2,..... from 类名;

    特点:返回一个List,集合中存放Object的数组。

    方式二:

    select new 类名(属性名1,属性名2,..... ) from 类名;

    特点:返回一个List,集合中存放指定的对象(前提:必须具有对应的构造函数)。

    关联关系查询:

    示例:from Emp e where e.dept.dname like '%软%'

    连接查询:显示关联(HQL中含有join关键字)、隐式关联(利用Xxx.hbm.xml配置(fetch=“join”、outer-join=“true”)、不使用join关键字,但是查询了另外一张表的数据)

    高级特性:

    分页查询:setFirstResult() 、 setMaxResult();

    占位符:使用“?”号占位;(可以避免SQL的注入漏洞);占位从下标0开始(JDBC中是从1开始的)。

    三.掌握本地SQL查询?

    针对某一种数据库提供的查询操作,称为本地SQL。(影响:数据库通用性)

    示例:

    List<Object[]> list = session.createSQLQuery("select *,DATEADD(DD, 5, GETDATE()) as ctime from dept").list();

            //获取集合中,存放数据的类型

            for(Object[] obj : list){

                for(Object o : obj){

                    System.out.print(o+"\t");

                }

                System.out.println();

            }

    四.了解面向对象查询(Criteria查询)?

    一点SQL都不会的人群;查询SQL条件比较复杂的情况。

    List<Emp> list = session.createCriteria(Emp.class)

            .add(Restrictions.eq("ename", "许褚"))

            .add(Restrictions.gt("eid", 10))

            .setFirstResult(0)

            .setMaxResults(5)

            .list();

           

    for(Emp e : list){       System.out.println(e.getEname()+":"+e.getDept().getDname())

    }

  • 相关阅读:
    centos 编码问题 编码转换 cd到对应目录 执行 中文解压
    centos 编码问题 编码转换 cd到对应目录 执行 中文解压
    centos 编码问题 编码转换 cd到对应目录 执行 中文解压
    Android MVP 十分钟入门!
    Android MVP 十分钟入门!
    Android MVP 十分钟入门!
    Android MVP 十分钟入门!
    mysql备份及恢复
    mysql备份及恢复
    mysql备份及恢复
  • 原文地址:https://www.cnblogs.com/huzi007/p/2811868.html
Copyright © 2011-2022 走看看