《Hibernate实现分页和综合查询详解.doc》由会员分享,可在线阅读,更多相关《Hibernate实现分页和综合查询详解.doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Hibernate实现分页和综合查询详解现如今,在web系统项目中,分页及综合查询几乎成了不可缺少的功能,每一个实体列表几乎都要要求带有分页及综合查询,前几天做老师布置的作业,想着干脆做一个通用点的,省得以后再每一次都要写一遍了。下面我们就一起来看一下我用hibernate实现的通用分页及综合查询。当然我这里所属的通用并不似绝对的,每到一个不同的场合,前台页面和数据接收还是稍微的要改一下:首先我们先来看一下列表的jsp页面:htmlview plaincopyprint?1. 2. 3. 4. 5. 6. 查询条件7. 8. 课程名:9. 课程号:10. 开课学期:11. 课时:从至课时12.
2、 课程学分:13. 14. 15. 16. 17. 18. 19. 操作20. 课程号21. 课程名22. 开课学期23. 课时24. 学分25. 26. 27. 28. 29. 30. $cour.id31. $cour.name32. $cour.lessonTime33. $cour.lessonHour34. $cour.lessonPoints35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 第$sessionScope.thisindex/$lastIndex页46. 47. 48. 首页49. !-50. 51. -52. 53. 54. 5
3、5. 尾页56. 57. 58. 59. 第页60. 61. 62. 63. 64. 65. 66. 这个列表的jsp页面下面的分页层差不多可以说是通用的吧,直接修改一下action的名字就可以了。上面数据列表要因不同的数据列表而不同了。我们来看一下他的分页层,首先看一下,根据在action中保存的课程数目来获得总共的页数。这里的页数也就是最后一页的页数。然后获得在action中保存的当前是第几页。接下来就是首页、尾页以及页数列表的链接了。并且还有一个可以输入页数进行查询的。 最上面是综合查询层,这个层其实很简单,就是一个form表单,根据输入的内容进行查询。好了具体的页面看完了,下一步我们来
4、看一下在action中接收数据的的地方,是怎么接收数据的。publicclassCourseListActionextendsActionSupportprivatefinalintEVpAGECOUNT=10;privateintindex;privateCoursecourse;privateintstartHour;privateintendHour;*省略set。Get方法 下面我们来解释一下这个action,首先来看一下它所定义的变量,index变量其实就是当前要查看的第几页,Course变量的是接收前面综合查询传递的数据的starthour和endHour其实是前面综合查询的生日的起始时间和终止时间。我们在来看一下一个常量,EVpAGECOUNT这个常量是定义每页的数据量的。说完变量我们在大体看一下execute方法里面的内容:首先前面是根据综合查询的每一项是否为空来组装这里的hql语句,很简单,不说了,然后就是根据查询的对象、当前页和hql语句进行综合和分页查询了。最后就是保存一些数据了。好了,最后我们来看一下dao层所写的通用分页和综合查询的一个方法:这个方法应该是对所有的分页和综合查询都是通用的,应该不需要改任何代码,把相应的值传过去就可以了。运行效果图: