欢迎来到天天文库
浏览记录
ID:39551329
大小:144.50 KB
页数:11页
时间:2019-07-06
《Hibernate分页查询小结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、通常使用的Hibernate通常是三种:hql查询,QBC查询和QBE查询: 1、QBE(QureyByExample)检索方式 QBE是最简单的,但是功能也是最弱的,QBE的功能不是特别强大,仅在某些场合下有用。一个典型的使用场合就是在查询窗口中让用户输入一系列的查询条件,然后返回匹配的对象。QBE只支持=和like比较运算符,无法不大区间值,及其或的匹配。在这种情况下,还是采用HQL检索方式或QBC检索方式。 Java代码 1./** 2. * @function 根据传递过来的Object,分页显示在数据库中与其匹配的记录 3. * @par
2、am pageNo 4. * 当前页数 5. * @param pageSize 6. * 每页显示的记录数 7. * @param object 8. * 将查询条件封装为Object 9. * @return 将查询结果封装为Pager返回 10. */ 11.public Pager findPageByExample(int pageNo, int pageSize, Object object) 12.{ 13. Pager pager = null; 14.
3、 try 15. { 16. Criteria criteria = this.getSession().createCriteria( 17. Class.forName(this.getEntity())); 18. 19. if (object != null) 20. { 21. criteria.add(Example.create(object).enableLike()); 22. } 23. 24.
4、 // 获取根据条件分页查询的总行数 25. int rowCount = (Integer) criteria.setProjection( 26. Projections.rowCount()).uniqueResult(); 27. criteria.setProjection(null); 28. 29. criteria.setFirstResult((pageNo - 1) * pageSize); 30. criteria.s
5、etMaxResults(pageSize); 31. 32. List result = criteria.list(); 33. 34. pager = new Pager(pageSize, pageNo, rowCount, result); 35. 1. } catch (RuntimeException re) 2. { 3. throw re; 4. } finally 5. { 6. return pager; 7. } 8
6、. 9.} 注意代码的第20行,即criteria.add(Example.create(object).enableLike());这一行,需将Example.create(object)调用.enableLike()方法,不然不能模糊查询。 在BO层将需要模糊查询的列用"%%"串起来,不然仍然和"="一样。 BO层代码: Java代码 1./** 2. * @function 将传递过来的参数封装成抢修人员Bean,分页查询符合条件的记录 3. * @param pageNo 4. * 当前的页码 5. * @para
7、m pageSize 6. * 每页显示的记录数 7. * @param mendName 8. * 抢修人员的名称 9. * @param specialty 10. * 抢修人员的工种 11. * @param post 12. * 抢修人员的职称 13. * @return 将符合条件的记录数以及页码信息封装成PagerBean返回 14. */ 15.public Pager getInfoByQuery(int pageNo, int pageSize
8、, String mendName, 16. String specialty, Strin
此文档下载收益归作者所有