Hibernate- QBC-基本查询
01.環(huán)境搭建
02.基本查詢
1.方法說明
| 方法 | 說明 |
| Restrictions.eq | = |
| Restrictions.allEq | 利用Map來進(jìn)行多個等于的限制 |
| 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限定查詢 |
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
2,QBC常用限定方法
Restrictions.eq?--> equal,等于.
Restrictions.allEq?--> 參數(shù)為Map對象,使用key/value進(jìn)行多個等于的比對,相當(dāng)于多個Restrictions.eq的效果
Restrictions.gt?--> great-than > 大于
Restrictions.ge?--> great-equal >= 大于等于
Restrictions.lt?--> less-than, < 小于
Restrictions.le?--> less-equal <= 小于等于
Restrictions.between?--> 對應(yīng)SQL的between子句
Restrictions.like?--> 對應(yīng)SQL的LIKE子句
Restrictions.in?--> 對應(yīng)SQL的in子句
Restrictions.and?--> and 關(guān)系
Restrictions.or?--> or 關(guān)系
Restrictions.isNull?--> 判斷屬性是否為空,為空則返回true
Restrictions.isNotNull?--> 與isNull相反
Restrictions.sqlRestriction?--> SQL限定的查詢
Order.asc?--> 根據(jù)傳入的字段進(jìn)行升序排序
Order.desc?--> 根據(jù)傳入的字段進(jìn)行降序排序
MatchMode.EXACT?--> 字符串精確匹配.相當(dāng)于"like 'value'"
MatchMode.ANYWHERE?--> 字符串在中間匹配.相當(dāng)于"like '%value%'"
MatchMode.START?--> 字符串在最前面的位置.相當(dāng)于"like 'value%'"
MatchMode.END?--> 字符串在最后面的位置.相當(dāng)于"like '%value'"
?
01.基本操作
?
02.分組查詢
/*** 分組查詢Hibernate: selectthis_.publisher_id as y0_,count(*) as y1_,sum(this_.price) as y2_ fromt_book this_ group bythis_.publisher_idHibernate: selectpublisher0_.id as id1_1_0_,publisher0_.name as name2_1_0_ fromt_publisher publisher0_ wherepublisher0_.id=?出版社:電子工業(yè)出版社, 圖書數(shù)量:3, 總價:155.0Hibernate: selectpublisher0_.id as id1_1_0_,publisher0_.name as name2_1_0_ fromt_publisher publisher0_ wherepublisher0_.id=?出版社:北京大學(xué)出版社, 圖書數(shù)量:2, 總價:67.84Hibernate: selectpublisher0_.id as id1_1_0_,publisher0_.name as name2_1_0_ fromt_publisher publisher0_ wherepublisher0_.id=?出版社:人民郵電出版社, 圖書數(shù)量:2, 總價:107.2*/ @Test public void run2() {Session session = HibernateUtil.getCurrentSession();Transaction transaction = session.beginTransaction();// 穿件criteria查詢接口Criteria query = session.createCriteria(Book.class);ProjectionList pList = Projections.projectionList();pList.add(Projections.groupProperty("publisher"));pList.add(Projections.rowCount());pList.add(Projections.sum("price"));query.setProjection(pList);Publisher publisher = null;Long count = null;Double sum = null;List<Object[]> list = query.list();for (Object[] obj : list) {publisher = (Publisher) obj[0];count = (Long) obj[1];sum = (Double) obj[2];System.out.println("出版社:" + publisher.getName() + ", 圖書數(shù)量:" + count + ", 總價:" + sum);}transaction.commit(); }?
03.聚合函數(shù)
/*** 聚合函數(shù)Hibernate: selectsum(this_.price) as y0_,min(this_.price) as y1_,max(this_.price) as y2_,avg(this_.price) as y3_ fromt_book this_[330.04, 31.0, 70.0, 47.14857142857143]*/ @Test public void run3() {Session session = HibernateUtil.getCurrentSession();Transaction transaction = session.beginTransaction();Criteria criteria = session.createCriteria(Book.class);ProjectionList projectionList = Projections.projectionList();projectionList.add(Projections.sum("price"));projectionList.add(Projections.min("price"));projectionList.add(Projections.max("price"));projectionList.add(Projections.avg("price"));criteria.setProjection(projectionList);List<Object[]> list = criteria.list();for (Object[] objects : list) {System.out.println(Arrays.toString(objects));}transaction.commit(); }?
總結(jié)
以上是生活随笔為你收集整理的Hibernate- QBC-基本查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 20170822L08-04老男孩lin
- 下一篇: linux 运维视频集合