QBC Hibernate动态查询详解:Criteria与Criteria接口应用

需积分: 9 0 下载量 28 浏览量 更新于2024-07-25 收藏 115KB DOC 举报
"QBC (QueryByCriteria) 是Hibernate框架中的一种高级查询方式,它提供了一种在运行时动态生成查询语句的功能,以满足更灵活的查询需求。与传统的HQL (Hibernate Query Language) 和 QBE (QueryByExample) 不同,QBC主要通过Criteria接口、Criterion接口和Expression类进行操作。 1. 创建Criteria对象:首先,开发者需要调用Session的createCriteria()方法来创建一个Criteria对象,它是QBC的核心组件,用于构建整个查询逻辑。 2. 设定查询条件:QBC的强大之处在于其Expression类,它提供了丰富的静态方法,如eq()、notEq()等,用于创建Criterion实例,每个Criterion实例代表一个查询条件。例如,`Criterion cron = Restrictions.like("customer", name);` 这行代码设置了按照'customer'字段的值匹配名字的查询条件。 3. 添加条件:使用Criteria的add()方法将Criterion添加到查询中,可以同时添加多个条件,形成复杂的查询逻辑。这样,开发者可以根据需要灵活组合不同的查询条件。 4. 执行查询:最后,调用Criteria的list()方法执行查询,返回的是一个List类型的查询结果,包含了所有符合条件的持久化对象。例如,`list = cri.list();` 会返回Customer对象列表,其中'customer'字段的值匹配name指定的值。 QBE(QueryByExample)则更像是基于例子的查询,创建一个模板,通过设置对象的属性,找出表中具有相似属性的记录,与QBC相比,QBE更侧重于基于某个已知对象的查询。 QBC是Hibernate中一种强大的查询机制,它允许在运行时动态构建查询,提高了查询的灵活性和适应性。通过理解和熟练掌握Criteria、Criterion、Expression和Restrictions类的使用,开发人员可以在处理复杂查询场景时更加得心应手。"