Hibernate4.3 QBC查询

一、基本查询

1 Session session = HibernateUtils.getSession();
2         //创建QBC查询接口的实现类
3         Criteria criteria = session.createCriteria(Person.class);
4         //查询对象列表
5         List<Person> personList = criteria.list();

  单个属性的查询

1 //创建查询接口的实现类
2         Criteria criteria = session.createCriteria(Person.class);
3         //获得具体查询的属性
4         PropertyProjection pp = Projections.property("pname");
5         //设置具体查询的列
6         criteria.setProjection(pp);
7         List<String> nameList = criteria.list();

  多个属性的查询

 1 //创建查询接口的实现类
 2         Criteria criteria = session.createCriteria(Person.class);
 3         //获得具体查询的属性
 4         PropertyProjection pp = Projections.property("pname");
 5         PropertyProjection pp1 = Projections.property("pgender");
 6         //创建要查询列的集合
 7         ProjectionList pList = Projections.projectionList();
 8         pList.add(pp);
 9         pList.add(pp1);
10         //设置具体查询的列
11         criteria.setProjection(pList);
12         List<Object[]> objArrList = criteria.list();

二、统计查询

  

 1 //创建查询接口的实现类
 2         Criteria criteria = session.createCriteria(Person.class);
 3         //设置要查询统计的属性
 4         AggregateProjection ap = Projections.max("salary");
 5         criteria.setProjection(ap);
 6         Object result = criteria.uniqueResult();
 7         System.out.println(result);
 8         //查询总数
 9         criteria.setProjection(Projections.rowCount());
10         Object result2 = criteria.uniqueResult();
11         System.out.println(result2);
12         //查询平均值
13         criteria.setProjection(Projections.avg("salary"));
14         Object result3 = criteria.uniqueResult();
15         System.out.println(result3);

三、分组统计查询

 1 //创建查询接口的实现类
 2         Criteria criteria = session.createCriteria(Person.class);
 3         //创建查询项的集合
 4         ProjectionList pl = Projections.projectionList();
 5         //设置要查询的属性
 6         PropertyProjection pp1 = Projections.property("pgender");
 7         AggregateProjection ap = Projections.max("salary");
 8         PropertyProjection pp = Projections.groupProperty("pgender");
 9         pl.add(pp1);
10         pl.add(ap);
11         pl.add(pp);
12         criteria.setProjection(pl);
13         List<Object[]> objArrList = criteria.list();

四、排序

1 Criteria criteria = session.createCriteria(Person.class);
2         criteria.addOrder(Order.desc("salary"));
3         List<Person> pList = criteria.list();

五、分页查询

1 Criteria criteria = session.createCriteria(Person.class);
2         //设置分页条件
3         criteria.setFirstResult(0);
4         criteria.setMaxResults(3);
5         List<Person> list = criteria.list();

六、限定查询

1 //创建查询接口的实现类
2         Criteria criteria = session.createCriteria(Person.class);
3         //创建查询条件
4         Criterion c = Restrictions.eq("id", 4);
5         criteria.add(c);
6         List<Person> list = criteria.list();
1 //创建查询接口的实现类
2         Criteria criteria = session.createCriteria(Person.class);
3         //创建查询条件,默认AND链接
4         Criterion c = Restrictions.ge("salary", 300);
5         Criterion c1 = Restrictions.le("salary", 500);
6         criteria.add(c);
7         criteria.add(c1);
8         List<Person> list = criteria.list();
1 //创建查询接口的实现类
2         Criteria criteria = session.createCriteria(Person.class);
3         //创建查询条件
4         Criterion c = Restrictions.and(Restrictions.ge("salary", 400),Restrictions.eq("pgender", 0));
5         criteria.add(c);
6         List<Person> list = criteria.list();

七、模糊查询

1 //创建查询接口的实现类
2         Criteria criteria = session.createCriteria(Person.class);
3         //创建查询条件
4         Criterion c = Restrictions.like("pname", "张%");
5         criteria.add(c);
6         List<Person> list = criteria.list();

 

转载于:https://www.cnblogs.com/cat-fish6/p/8675782.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值