`

使用criteria进行查询

阅读更多
1、读取配置文件获得连接
   读取hibernate.cfg.xml配置文件,hibernate.cfg.xml文件放在Classpath下,使用下面的方式读入该文件
      //Configuration 负责管理hibernate配置信息
      Configuration config=new Configuration().configure();
      //根据config建立SessionFactory
      //SessionFactory用于建立Session
      SessionFactory sessionFactory=config.buildSessionFactory();
      //开启session,相当于jdbc的Connection
      session = sessionFactory.openSession();

2、Criteria 基本资料查询
(1)标准查询:
      //创建查询标准
      Criteria criteria=session.creteCriteria(User.class);
      //查询条件
      criteria.add(Expression.eq("name","caterpillar"));
************************************************************************************
Expression.eq(String s1,String s2)---------->相等s1=s2
Expression.allEq(Map map)    --------------->多个属性-值对应关系,多个Expression.eq叠加
Expression.gt(String s1,String s2)----------->大于s1>s2
Expression.ge(String s1,String s2)----------->大于等于s1>=s2
Expression.lt(String s1,String s2)------------>小于s1<s2
Expression.le(String s1,String s2)------------>小于等于s1<=s2
Expression.between(String s1,int s2,int s3)--->s2<s1<s3
Expression.like(String s1,String s2)------------>s1 like s2
比较2个属性
Expression.eqProperty(String s1,String s2)--->s1=s2
Expression.gtProperty(String s1,String s2)---->s1>s2
Expression.geProperty(String s1,String s2)---->s1>=s2
Expression.ltProperty(String s1,String s2)----->s1<s2
Expression.leProperty(String s1,String s2)----->s1<=s2
Expression.and()----->Expression.and(Expression.eq("String s1,String s2"),Expression.eq(String s3,String s4))
Expression.or()
************************************************************************************
(2)高级查询
一、可以使用Criteria进行查询,并用order对结果进行排序。
//设置从第几条开始取的记录
criteria.setFirstResult(100);
//最多取的几条记录
criteria.setMaxResults(20);
//对结果进行排序
criteria.addOrder(Order.asc(String s1));
criteria.addOrder(Order.desc(String s2));

二、可以对查询结果进行统计操作,使用Projections的rowCount(),count(),max(),min(),countDistinct()等方法:
例如:criteria.setProjection(Projections.max("age"));

三、还可以用Projections的groupProperty()来对结果进行分组
例如:criteria.setProjection(Projections.groupProperty("age"));

(***)四、结合统计与分组的功能,可以用ProjectionList
例如:ProjectionList projectionList =Projections.projectionList();
            projectionList.add(Projections.groupProperty("age"));
            projectionList.add(Projections.rowCount());
            criteria.setProjection(projectionList);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      //查询所有记录
      List users=criteria.list();
      Iterator iterator=users.iterator();
      while(iterator.hasNext()){
         User user=(User)iterator.next();
         System.out.println(user.getId()+"\t"+user.getName()+"/"+user.getAge());
}
3、criteria的增、删、改(还不完善)
在用到增、删、改时,必须先声明事务
增加:
  Transaction tx = session.beginTransaction();//Transaction表示一组会话操作
  session.save(user);//将事物映射到数据库进行存储
  tx.commit();
  session.close();
删除:
  Session session=this.getSession();
  User user=(User)session.get(User.class, new Integer(1));
  Transaction tx = session.beginTransaction();//Transaction表示一组会话操作
  session.delete(user);//将事物映射到数据库进行存储
  tx.commit();
  session.close();
修改:
  Session session=this.getSession();
  User user =(User)session.get(User.class,new Integer(2));//创建持久化的事物
  user.setName("wyqqqqqqqqqq");
  user.setAge(new Integer(30));
  Transaction tx = session.beginTransaction();//Transaction表示一组会话操作
  session.update(user);//将事物映射到数据库进行存储
  tx.commit();
  session.close();
----------------------------------------------------------------------------------------------------------------------
分享到:
评论

相关推荐

    Hibernate中Criteria的使用

    Hibernate 中 Criteria 的使用 Hibernate 中 Criteria 的使用是 ...Hibernate 中 Criteria 的使用可以灵活地根据查询条件的组装来进行查询,使用 Criterion 和 Projection 设置查询条件,可以实现复杂的查询操作。

    Hibernate的Criteria用法总结.doc

    使用 Criteria 进行查询,主要要清晰的是 Hibernate 提供了那些类和方法来满足开发中查询条件的创建和组装。Criteria crit = session.createCriteria(User.class); crit.add(Restrictions.eq("name", "John")); List...

    Hibernate中Criteria的完整用法.docx

    使用 Criteria 进行查询,主要要清晰的是 Hibernate 提供了那些类和方法来满足开发中查询条件的创建和组装。例如,创建一个 Criteria 实例 org.hibernate.Criteria 接口表示,可以使用 Criteria 的 add(Criterion ...

    Hibernate中Criteria的完整用法

    使用 Criteria 进行查询,主要要清晰的是 Hibernate 提供了那些类和方法来满足开发中查询条件的创建和组装。通过 Criteria,可以根据实际情况灵活地组装查询条件,以满足复杂的查询需求。 Hibernate 的 Criteria 是...

    Criteria连表查询

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

    symfony Model Criteria

    在Symfony框架中使用Criteria对象进行数据库查询时,可以设定多种查询条件和比较操作符。这些操作符包括但不限于: - **比较操作符**:如 EQUAL、NOT_EQUAL、GREATER_THAN、LESS_THAN 等。 - **模糊匹配**:如 LIKE...

    Hibernate-Criteria 模糊查询

    `Criteria`是Hibernate提供的一个用于执行查询的标准API,它基于对象模型而不是SQL语句来构建查询,这使得开发人员能够以面向对象的方式进行数据库操作,避免了直接编写SQL带来的复杂性和潜在错误。通过`Criteria`,...

    Hibernate-Criteria_模糊查询

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

    Criteria标准化对象查询小例子

    首先,让我们了解Criteria查询的基本组成部分: 1. **CriteriaQuery**: 这是查询的主对象,用于定义查询的类型(例如,选择、更新或删除)以及要查询的数据实体。 2. **Root**: 它代表查询的起点,通常是对数据库...

    hibernate如何使用criteria联合查询 group by 的语句

    这个案例是根据分组查询,并且得到每组的条数,不懂得可以q我:1710086675,欢迎认识更多新朋友

    hibernateCriteria查询

    与传统的SQL查询相比,Criteria查询更加面向对象,易于理解和维护。在Hibernate框架中,Criteria查询是除HQL之外的另一种常用查询方式。 #### 二、Criteria 接口 `org.hibernate.Criteria` 接口代表了针对某个特定...

    criteria介绍与使用

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

    Hibernat 使用Criteria查询多对多关系(SET集合)条件

    ### Hibernat 使用Criteria查询多对多关系(SET集合)条件 #### 背景介绍与概念理解 在Java开发中,特别是在企业级应用中,持久化层的处理至关重要。Hibernate作为一款流行的Java持久化框架,它提供了一种非常简便...

    Criteria使用方法

    ### Criteria使用方法详解 #### 一、概述 在软件开发过程中,尤其是涉及到数据库操作的应用程序中,查询语言的灵活性和效率对于项目的成功至关重要。Hibernate作为Java领域中最流行的ORM(Object Relational ...

    09 Criteria查询方式

    "09 Criteria查询方式"这个主题,显然是围绕Hibernate中的Criteria API展开的,这是一种灵活且类型安全的查询机制,用于在Java代码中构建SQL查询。Criteria API提供了一种面向对象的方式来查询数据库,避免了直接...

    Hibernate - DetachedCriteria 的完整用法

    使用 Criteria 进行查询,主要要清晰的是 Hibernate 提供了那些类和方法来满足开发中查询条件的创建和组装。如使用 `session.createCriteria(Class)` 方法来创建 Criteria 实例,然后使用 `add(Criterion criterion)...

    Criteria查询

    Criteria查询教程ppt课件内容详解

    Hibernate中,利用Criteria查询容器实现sql的写法

    本篇将详细讲解如何在Hibernate中利用Criteria查询来实现类似SQL的查询操作,并探讨其在实际开发中的应用。 Criteria查询是Hibernate提供的一种灵活的查询方式,它可以让我们根据业务需求动态地构建查询条件。这种...

    Hibernate_Criteria条件查询数据

    6. **投影**:Criteria查询不仅可以获取完整的对象,还可以进行投影操作,如获取特定属性的列表(`Projection.list()`)或计算聚合函数(`Projections.sum()`, `Projections.avg()`, `Projections.max()`, `...

Global site tag (gtag.js) - Google Analytics