public void testQBC() {
// 方法 说明
// Restrictions.eq =
// Restrictions.allEq 利用Map来进行多个等于的限制
// Restrictions.gt >
// Restrictions.ge >=
// Restrictions.lt <
// Restrictions.le <=
// Restrictions.between BETWEEN
// Restrictions.like LIKE
// Restrictions.in in
// Restrictions.and and
// Restrictions.or or
// Restrictions.sqlRestriction 用SQL限定查询
//介绍以下几个典型的用法,这样其他的也会用了
/*
* 简单的加些限制条件进行搜索
* Restrictions.eq
*/
/* Session session = factory.openSession();
Criteria criteria = session.createCriteria(User.class);
Criterion criterion1 = Restrictions.eq("addr", "dalian");
Criterion criterion2 = Restrictions.eq("name", "tie");
criteria.add(criterion1);
criteria.add(criterion2);
List users = criteria.list();
for(User user : users){
System.out.println(user.introduce());
System.out.println("**********************");
}*/
/*
* Restrictions.allEq 利用Map来进行多个等于的限制
*/
/* Session session = factory.openSession();
Criteria criteria = session.createCriteria(User.class);
Map para = new HashMap();
para.put("addr", "dalian");
para.put("name", "tie");
Criterion criterion1 = Restrictions.allEq(para);
criteria.add(criterion1);
List users = criteria.list();
for(User user : users){
System.out.println(user.introduce());
System.out.println("**********************");
}*/
/*
* Restrictions.sqlRestriction用SQL限定查询
* Restrictions.sqlRestriction()这里有三个重载的方法,
*/
/* Session session = factory.openSession();
Criteria criteria = session.createCriteria(User.class);
//1. Criterion criterion1 =
Restrictions.sqlRestriction("{alias}.name='tie' and
{alias}.addr='dalian'");
//2. Criterion criterion1 = Restrictions.sqlRestriction("alias}.name=?",
"tie", Hibernate.STRING);
//3. Object[] ob = {"tie","dalian"};
Type[] type = {Hibernate.STRING,Hibernate.STRING};
Criterion criterion1 = Restrictions.sqlRestriction("{alias}.name=?
and {alias}.addr=?", ob, type);
criteria.add(criterion1);
List users = criteria.list();
for(User user : users){
System.out.println(user.introduce());
System.out.println("**********************");
}*/
/*
* 排序
*/
/* Session session = factory.openSession();
Criteria criteria = session.createCriteria(User.class);
criteria.addOrder(Order.desc("age"));
List users = criteria.list();
for(User user : users){
System.out.println(user.introduce());
System.out.println("**********************");
}*/
/*
* 求平均数
*/
/* Session session = factory.openSession();
Criteria criteria = session.createCriteria(User.class);
criteria.setProjection(Projections.avg("age"));
List avg_ages = criteria.list();
for(Double avg_age : avg_ages){
System.out.println("avg_age:"+avg_age);
}*/
/*
* 分组
*/
/* Session session = factory.openSession();
Criteria criteria = session.createCriteria(User.class);
criteria.setProjection(Projections.groupProperty("addr"));
List addrs = criteria.list();
for(String addr : addrs){
System.out.println(addr);
}*/
/*
*过个的条件,同时求平均数和分组
*/
/* Session session = factory.openSession();
Criteria criteria = session.createCriteria(User.class);
ProjectionList projectionList = Projections.projectionList();
projectionList.add(Projections.groupProperty("addr"));
projectionList.add(Projections.avg("age"));
criteria.setProjection(projectionList);
List avgs = criteria.list();
for(Object[] avg : avgs){
System.out.println(avg[0]+":"+avg[1]);
}*/
/*
* DetachedCriteria举例
*
*/
/* DetachedCriteria detachedCriteria = DetachedCriteria
.forClass(User.class);
detachedCriteria.add(Restrictions.eq("addr", "dalian"));
Session session = factory.openSession();
Criteria criteria = detachedCriteria.getExecutableCriteria(session);
List users = criteria.list();
for (User user : users) {
System.out.println(user.introduce());
System.out.println("**********************");
}*/
// session.close();
}
本文转自 http://linweihan.iteye.com/blog/145190
分享到:
相关推荐
通过深入学习和实践“Hibernate QBC高级查询”,开发者可以更高效、灵活地处理数据查询任务,提高代码的可读性和可维护性。提供的资源“Hibernate QBC高级查询.wps”应该包含详细的讲解和示例代码,帮助你掌握这些...
Hibernate(HQL、QBC查询)源码 Hibernate(HQL、QBC查询)源码 Hibernate(HQL、QBC查询)源码 Hibernate(HQL、QBC查询)源码 Hibernate(HQL、QBC查询)源码
但是,对于简单的查询,HQL的语法可能比QBC显得更冗长,学习曲线也较陡峭。 在实际开发中,如何选择QBC和HQL,往往取决于项目需求和团队成员的熟悉程度。对于那些强调快速开发、查询条件较为简单的项目,QBC可能是...
**标题与描述解析** 标题"Hibernate_QBC和Hibernate_QBE"提及了两个关于Hibernate的查询方式,即Query By ...通过深入学习和实践,开发者能够更好地利用Hibernate的特性,优化数据库操作,提升应用程序的性能。
收录了QBC_hibernate完整用法.大家可以下载看看.作为参考.
QBC是Hibernate提供的一种基于对象的查询方式,与HQL(Hibernate Query Language)类似,但更接近Java的API,允许我们根据对象的属性来构建查询条件。在进行分页查询时,QBC提供了`setFirstResult()`和`...
Hibernate QBC(Query By Criteria)查询是Hibernate框架中一种面向对象的查询方式,它通过提供Criteria API使得开发者能够更方便地构建和执行SQL查询。QBC查询的优势在于它允许程序员用更加面向对象的方式处理...
// 1.查询所有 // 2.条件查询 // 3.模糊查询 // 4.范围查询 // 5.排序查询(order by) // 6.分页查询 // 7.投影查询(只获取部分字段的结果) // 8.聚集函数使用(聚合函数)(count、sum、avg、max、min等) ...
hibernate概述,hibernate入门Demo,hibernate配置文件详解(全局配置,实体类映射配置),配置...hibernate查询方式概述,HQL查询,QBC查询,分页,结果集封装方式 ,高级查询 查询的优化,一级缓存,二级缓存,批量查询,注解方式
标题中的“Hibernate-HQL-QBC-QBE”涵盖了四个重要的Java持久化框架Hibernate中的概念,分别是Hibernate Query Language(HQL)、Query By Criteria(QBC)、Query By Example(QBE)以及相关的库文件。以下是对这些...
在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库...在学习和实践中,理解并熟练掌握这两者,将极大地提升你的Hibernate开发能力。
之前也发了一个,这个包含之前的,还添加了hibernate对数据库操作的代码(注意:controller层两个QBC/SQLTest代码不能运行,只是写出了操作数据库的除了HQL的另外2种方式)。我发现现在还是有很多公司用hibernate+...
QBC,全称为Query By Criteria,是Java世界中一种基于对象的查询方式,主要用于简化Hibernate框架中的数据查询操作。QBC提供了一种面向对象的方式来构建查询条件,与SQL语句相比,它更易于理解和维护,尤其在处理...
QBC的相关讲义和例题 QBC(Query By Criteria)查询方式是Hibernate提供的“更加面向对象”的一种检索方式。QBC在条件查询上比HQL查询更为灵活,而且支持运行时动态生成查询语句。
在本文中,我们将深入探讨如何使用Spring Boot与Hibernate框架实现简单的分页功能。Spring Boot以其简洁的配置和快速的应用开发而受到广泛欢迎,而Hibernate作为Java领域中的一个强大的ORM(对象关系映射)工具,...
根据提供的文件信息,我们可以推断出此文档主要讨论了QBC(Query By Criteria)查询方法在Hibernate框架中的应用。...通过这些内容的学习,可以帮助开发人员更好地理解和运用QBC查询,提高查询效率和准确性。
深入QBC查询.md可能涵盖了Hibernate的Query By Criteria API,这是另一种查询数据库的方式,除了传统的HQL(Hibernate Query Language)外,开发者可以通过构建Criteria对象来执行动态查询,这种方式更接近面向对象...
QBC是Hibernate框架提供的一个高级查询接口,允许开发者通过编程的方式构造复杂的查询条件,而不需要直接编写SQL语句。这种方式极大地提高了代码的可读性和可维护性,同时也使得查询逻辑更加灵活多变。 #### 二、...
**QBC(Query By Example)**是Hibernate框架中的一种查询方式,它允许开发者通过实例对象来构造查询条件,提供了一种更加面向对象的查询方法。QBC查询在处理复杂的动态查询时尤其方便,因为它可以避免编写大量的SQL...