`

Criteria

阅读更多
  1. public   void  testQBC() {   
  2.            
  3.            
  4. //      方法  说明    
  5. //      Restrictions.eq     =    
  6. //      Restrictions.allEq  利 用Map来进行多个等于的限制    
  7. //      Restrictions.gt     >    
  8. //      Restrictions.ge     >=    
  9. //      Restrictions.lt     <   
  10. //      Restrictions.le     <=    
  11. //      Restrictions.between    BETWEEN   
  12. //      Restrictions.like   LIKE   
  13. //      Restrictions.in     in   
  14. //      Restrictions.and    and   
  15. //      Restrictions.or     or   
  16. //      Restrictions.sqlRestriction     用 SQL限定查询    
  17. //介绍以下几个典型的用法,这样其他的也会用 了        
  18.            
  19.            
  20.            
  21.          /*  
  22.          * 简单的加些限制条件进行搜索   
  23.          * Restrictions.eq  
  24.          */   
  25.          /* Session session = factory.openSession();  
  26.          Criteria criteria = session.createCriteria(User.class);  
  27.          Criterion criterion1 = Restrictions.eq("addr", "dalian");  
  28.          Criterion criterion2 = Restrictions.eq("name", "tie");  
  29.          criteria.add(criterion1);  
  30.          criteria.add(criterion2);  
  31.          List<user></user> users = criteria.list();  
  32.          for(User user : users){  
  33.          System.out.println(user.introduce());  
  34.          System.out.println("**********************");  
  35.          }*/   
  36.   
  37.            
  38.          /*  
  39.          * Restrictions.allEq   利 用Map来进行多个等于的限制   
  40.          */   
  41.          /* Session session = factory.openSession();  
  42.          Criteria criteria = session.createCriteria(User.class);  
  43.          Map para = new HashMap();  
  44.          para.put("addr", "dalian");  
  45.          para.put("name", "tie");  
  46.          Criterion criterion1 = Restrictions.allEq(para);  
  47.          criteria.add(criterion1);  
  48.          List<user></user> users = criteria.list();  
  49.          for(User user : users){  
  50.          System.out.println(user.introduce());  
  51.          System.out.println("**********************");  
  52.          }*/   
  53.   
  54.            
  55.            
  56.          /*  
  57.          * Restrictions.sqlRestriction 用SQL限定查询   
  58.          * Restrictions.sqlRestriction() 这里有三个重载的方法,  
  59.          */   
  60.      /*   Session session = factory.openSession();  
  61.          Criteria criteria = session.createCriteria(User.class);  
  62. //1.     Criterion criterion1 =  
  63.          Restrictions.sqlRestriction("{alias}.name='tie' and  
  64.          {alias}.addr='dalian'");  
  65.  
  66. //2.     Criterion criterion1 = Restrictions.sqlRestriction("{alias}.name=?",  
  67.          "tie", Hibernate.STRING);  
  68.           
  69.            
  70. //3.     Object[] ob = {"tie","dalian"};  
  71.          Type[] type = {Hibernate.STRING,Hibernate.STRING};  
  72.  
  73.          Criterion criterion1 = Restrictions.sqlRestriction("{alias}.name=?  
  74.          and {alias}.addr=?", ob, type);  
  75.          criteria.add(criterion1);  
  76.          List<user></user> users = criteria.list();  
  77.          for(User user : users){  
  78.          System.out.println(user.introduce());  
  79.          System.out.println("**********************");  
  80.          }*/   
  81.   
  82.            
  83.          /*  
  84.          * 排序  
  85.          */   
  86.          /* Session session = factory.openSession();  
  87.          Criteria criteria = session.createCriteria(User.class);  
  88.          criteria.addOrder(Order.desc("age"));  
  89.          List<user></user> users = criteria.list();  
  90.          for(User user : users){  
  91.          System.out.println(user.introduce());  
  92.          System.out.println("**********************");  
  93.          }*/   
  94.   
  95.            
  96.          /*  
  97.          * 求平均数  
  98.          */   
  99.          /* Session session = factory.openSession();  
  100.          Criteria criteria = session.createCriteria(User.class);  
  101.          criteria.setProjection(Projections.avg("age"));  
  102.          List<double></double> avg_ages = criteria.list();  
  103.          for(Double avg_age : avg_ages){  
  104.          System.out.println("avg_age:"+avg_age);  
  105.          }*/   
  106.   
  107.            
  108.            
  109.          /*  
  110.          * 分组  
  111.          */   
  112.          /* Session session = factory.openSession();  
  113.          Criteria criteria = session.createCriteria(User.class);  
  114.          criteria.setProjection(Projections.groupProperty("addr"));  
  115.          List<string></string> addrs = criteria.list();  
  116.          for(String addr : addrs){  
  117.          System.out.println(addr);  
  118.          }*/   
  119.   
  120.            
  121.            
  122.          /*  
  123.          *过个的条件,同时求平均数和分 组   
  124.          */   
  125.          /* Session session = factory.openSession();  
  126.          Criteria criteria = session.createCriteria(User.class);  
  127.          ProjectionList projectionList = Projections.projectionList();  
  128.          projectionList.add(Projections.groupProperty("addr"));  
  129.          projectionList.add(Projections.avg("age"));  
  130.          criteria.setProjection(projectionList);  
  131.          List avgs = criteria.list();  
  132.          for(Object[] avg : avgs){  
  133.          System.out.println(avg[0]+":"+avg[1]);  
  134.          }*/   
  135.   
  136.            
  137.          /*  
  138.          * DetachedCriteria 举例  
  139.          *   
  140.          */   
  141.            
  142.      /*  DetachedCriteria detachedCriteria = DetachedCriteria  
  143.                 .forClass(User.class);  
  144.         detachedCriteria.add(Restrictions.eq("addr", "dalian"));  
  145.  
  146.         Session session = factory.openSession();  
  147.         Criteria criteria = detachedCriteria.getExecutableCriteria(session);  
  148.  
  149.         List<user></user> users = criteria.list();  
  150.         for (User user : users) {  
  151.             System.out.println(user.introduce());  
  152.             System.out.println("**********************");  
  153.         }*/   
  154.   
  155.       //  session.close();   
  156.     }  
分享到:
评论

相关推荐

    Hibernate中Criteria的完整用法

    Hibernate中的Criteria API是一种用于执行动态查询的机制,它允许开发者在运行时构建SQL查询,而无需直接编写SQL语句。Criteria API提供了更加面向对象的方式来处理数据库查询,这使得代码更易于理解和维护,尤其是...

    Criteria标准化对象查询小例子

    在Java世界中,Criteria API是JPA(Java Persistence API)的一部分,用于构建动态、类型安全的查询。这个“Criteria标准化对象查询小例子”提供了一个实际应用Criteria API的示例,帮助开发者理解如何利用它来执行...

    Criteria的完整用法.pdf

    ### Criteria的完整用法详解 #### 一、概述 在基于Spring和Hibernate的项目开发中,Criteria API提供了灵活且强大的查询功能,使开发者能够轻松构建复杂的查询条件,从而提高数据检索的效率与精确度。本文将深入...

    criteria介绍与使用

    ### Criteria介绍与使用 在Java开发中,特别是涉及到数据库操作时,经常需要用到各种查询方式来获取数据。在Hibernate框架中,`Criteria`提供了一种非常灵活且强大的查询机制,允许开发者构建复杂的查询条件,而...

    Hibernate的Criteria用法总结

    在Java持久层框架Hibernate中,Criteria API是一种动态构建SQL查询的方法,它允许开发者在运行时构建查询,提供了更面向对象的查询方式。本篇将详细阐述Hibernate Criteria API的使用。 首先,Criteria API由...

    Hibernate-Criteria_模糊查询

    在深入探讨Hibernate与Criteria结合进行模糊查询之前,我们先来了解一下Hibernate和Criteria的基本概念,以及为何选择使用它们进行模糊查询。 ### Hibernate简介 Hibernate是一个开放源代码的对象关系映射(ORM)...

    Hibernate criteria基本操作

    Hibernate Criteria 是一种在Java应用程序中使用Hibernate ORM框架执行SQL查询的方式。它提供了一种面向对象的方式来构建查询,使得代码更加可读和易于维护。Criteria API 提供了多种方法来构建复杂的查询,包括添加...

    Hibernate的Criteria文档

    在Java的持久层框架Hibernate中,Criteria API是一个强大的查询工具,它可以用来替代传统的SQL或HQL(Hibernate Query Language)查询,以实现更加面向对象的数据库交互。Criteria API的设计旨在屏蔽不同数据库之间...

    Hibernate Criteria 排序的問題

    ### Hibernate Criteria 排序问题详解 #### 一、前言 在使用Hibernate进行数据库操作时,经常需要对查询结果进行排序处理。对于简单的查询场景,使用HQL(Hibernate Query Language)即可轻松实现排序功能;但对于...

    hibernateCriteria查询

    ### Hibernate Criteria 查询详解 #### 一、概述 Hibernate Criteria 查询是一种强大的对象化查询方式,它为开发者提供了一种灵活而直观的方式来构建复杂的查询逻辑。与传统的SQL查询相比,Criteria查询更加面向...

    Hibernate中Criteria的完整用法.docx

    Hibernate 中 Criteria 的完整用法 Hibernate 中 Criteria 的完整用法是 Hibernate 框架中的一种查询机制,允许开发者灵活地根据查询条件来组装查询语句。在使用 Spring 和 Hibernate 进行开发时,Criteria 的优势...

    Hibernate-Criteria 模糊查询

    ### Hibernate-Criteria 模糊查询详解 在Java的持久化技术中,Hibernate作为ORM(对象关系映射)框架的一种,提供了强大的数据访问能力。而其中的`Criteria`接口更是为复杂的查询需求提供了一种灵活且功能强大的...

    Criteria连表查询

    Hibernate中的Criteria连表查询,包括单表属性查询,多表内连,以及左外连接查询

    Hibernate的Criteria用法总结.doc

    Hibernate 的 Criteria 用法总结 Hibernate 的 Criteria 是一个完全面向对象、可扩展的条件查询 API,通过它完全不需要考虑数据库底层如何实现、SQL 语句如何实现。Criteria 提供了灵活的查询条件组装方式,能够...

    关联映射hibernate的criteria的用法

    **关联映射Hibernate的Criteria用法详解** 在Java开发中,Hibernate作为一种强大的对象关系映射(ORM)框架,极大地简化了数据库操作。其中,Criteria API是Hibernate提供的一个动态查询工具,它允许开发者以面向...

    Hibernate中Criteria的使用

    Hibernate 中 Criteria 的使用 Hibernate 中 Criteria 的使用是 Hibernate 框架中的一种查询机制,对于研究 Hibernate 源码有一些作用。在查询方法设计上可以灵活地根据 Criteria 的特点来方便地进行查询条件的组装...

    Hibernate中Criteria的用法

    Hibernate 中 Criteria 的用法 Hibernate 中 Criteria 的用法是 Hibernate 框架中的一种查询机制,它提供了灵活的查询方式,可以根据不同的条件进行查询。Criteria 查询机制主要包括 QBE(Query By Example)、QBC...

    DetachedCriteria Criteria 使用方法

    - **使用场景**:`Criteria` 适用于即时查询,而 `DetachedCriteria` 更适合跨层传递查询条件。 - **灵活性**:`DetachedCriteria` 提供了更大的灵活性,可以在不同层之间传递而不会丢失查询状态。 #### 三、`...

Global site tag (gtag.js) - Google Analytics