zoukankan      html  css  js  c++  java
  • Hibernate的检索

    一,hibernate的检索策略

       1,类级别的检索策略 

        默认 <class>的属性 lazy="ture" 懒加载

       2,属性的检索策略

        <set>的属性

         lazy:懒加载; batch-size: 设定批量检索的数量; fetch: 抓取策略 ,select ,join.subselect. 默认为select 会发送多条sql语句,设置为join时 

          hibernate只发送一条SQL查询语句 此时lazy属性失效。

    二,hibernate的检索方式

       1,导航对象图检索方式:即根据已经加载的对象,导航到与其相关的对象上,比如一对多中 1的一方。

       2,按照OID来检索对象,如session.get(**.class,1);

       3,HQL查询,使用面向对象的HQL查询语言。

       4,使用QBC API来检索对象,该API封装了基于字符串的SQL语句

       5,使用 本地数据库SQL语句 检索数据。

       HQL查询

        .创建Query对象

         String hql="from Order o where o.orderName=? And o.customer=? ";

         Query query=session.createQuery(hql);

        .绑定参数

         query.setString(0, "订单A");

         query.setInteger("id", 753664);

         query.setEntity(1, customer);

          可以使用 ? ,命名参数 来传参数,参数也可以为对象

        .执行查询

         List<Order>list=query.list();

        补充: 

          分页查询

           query.setFirstResult((pageNo-1)*pageSize).setMaxResults(pageSize);

        QBC查询,就是通过使用Hibernate提供的query by criteria API 可以实现复杂的sql查询

         .创建criteria对象

          Criteria c=session.createCriteria(Animal.class);

         .设置查询条件

          c.add(Restrictions.eq("name", "动物1"));

         .查询

          List<Animal>list=c.list();

        本地SQL查询

         .编写SQL语句

          String sql="select * from ANIMAL a where a.NAME= :na";

         .创建SQLQuery对象

          SQLQuery sqlq=session.createSQLQuery(sql);

          sqlq.setString("na", "动物1");

         .查询数据

          List<Animal>list=sqlq.list();

  • 相关阅读:
    [转]ASP.Net+XML打造留言薄
    [导入]如何构造一个C#语言的爬虫蜘蛛程序
    [导入]CSS基本布局16例
    [导入]ASP.NET26个常用性能优化方法
    javascript控制cookies及在跳出本页给出提示,是否放弃操作!!
    RunOnBeforeUnload()
    [导入]网易娱乐频道也在用风讯CMS
    etcd集群配置
    openstack上传镜像
    Ambari 节点坏掉不要的节点 无法删除解决方法
  • 原文地址:https://www.cnblogs.com/m01qiuping/p/6390947.html
Copyright © 2011-2022 走看看