Spring JPA 查询的几种方式并处理分页.doc_第1页
Spring JPA 查询的几种方式并处理分页.doc_第2页
Spring JPA 查询的几种方式并处理分页.doc_第3页
Spring JPA 查询的几种方式并处理分页.doc_第4页
Spring JPA 查询的几种方式并处理分页.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Spring JPA 查询的几种方式并处理分页第一种 NamedQuery(返回方式为列模式原生态sql的复杂查询)1)dao层处理查询并分页Java代码1. SuppressWarnings(unchecked)2. publicPageResultgetList(IntegercurrentPage)3. PageResultpageResult=newPageResult();4. intpageSize=Constant.DEFAULT_PAGE_SIZE;5. intstart=(currentPage-1)*pageSize;6. Queryquery=getEntityManager().createNamedQuery(ReturnTrainAppyUser);7. inttotal=query.getResultList().size();8. /判断分页9. if(start0)10. query.setFirstResult(start);11. query.setMaxResults(pageSize);12. pageResult.setFirst(start);13. pageResult.setPageSize(pageSize);14. 15. 16. pageResult.setTotalCount(total);17. pageResult.setPageResultList(query.getResultList();18. returnpageResult;19. 2)控制层代码Java代码1. RequestMapping(/applyList)2. publicStringapplyList(HttpServletRequestrequest,3. HttpServletResponseresponse,Modelmodel)throwsException4. IntegercurrentPage=1;5. IntegerpageNum=getIntParameter(request,pageNum);6. if(pageNum!=null)7. currentPage=getIntParameter(request,pageNum);8. 9. PageResulta=trainApplyService.findContentResult(currentPage);10. addPageResultModel2(a,currentPage,model);11. returncommon/train/admin/applyList;12. 处理分页参数Java代码1. protectedvoidaddPageResultModel2(PageResultpct,IntegercurrentPage,Modelmodel)2. model.addAttribute(totalCount,pct.getTotalCount();3. model.addAttribute(numPerPage,Constant.DEFAULT_PAGE_SIZE);4. model.addAttribute(pageNum,currentPage);5. model.addAttribute(pageNumShown,pct.getPageCount(pct.getTotalCount(),Constant.DEFAULT_PAGE_SIZE);6. model.addAttribute(currentPage,currentPage);7. model.addAttribute(itemList,pct.getPageResultList();8. 3)实体类Java代码1. NamedNativeQueries2. (3. 4. NamedNativeQuery(5. name=ReturnTrainAppyUser,6. query=selecta.idasapply_id,b.idasplan_id,b.titleasplan_title,(selectcount(c.id)fromtrain_apply_usercwherec.APPLY_ID=a.ID)asapply_user_num,panyasapply_companyfromtrain_applyainnerjointrain_planbonb.ID=a.PLAN_ID,7. resultSetMapping=ReturnTrainAppyUser),8. 9. )10. SqlResultSetMappings(11. 12. SqlResultSetMapping13. (14. name=ReturnTrainAppyUser,15. entities=,16. columns=17. 18. ColumnResult(name=apply_id),19. ColumnResult(name=plan_id),20. ColumnResult(name=plan_title),21. ColumnResult(name=apply_user_num),22. ColumnResult(name=apply_company)23. 24. )25. )26. Entity27. Table(name=train_apply)28. publicclassTrainApplyextendsVO29. privatestaticfinallongserialVersionUID=-6530604520661376764L;30. Id31. GeneratedValue(strategy=GenerationType.IDENTITY)32. privateLongid;/ID33. privateLongplanId;/计划ID34. privateStringorgName;/单位名称35. privateStringroomType;/客房类型36. privateStringroomNumber;/客房数37. privateStringinvoiceType;/发票类型38. privateStringstatus;/状态39. 40. 41. 42. publicLonggetId()43. returnid;44. 45. publicvoidsetId(Longid)46. this.id=id;47. 48. publicLonggetPlanId()49. returnplanId;50. 51. publicvoidsetPlanId(LongplanId)52. this.planId=planId;53. 54. publicStringgetOrgName()55. returnorgName;56. 57. publicvoidsetOrgName(StringorgName)58. Name=orgName;59. 60. publicStringgetRoomType()61. returnroomType;62. 63. publicvoidsetRoomType(StringroomType)64. this.roomType=roomType;65. 66. publicStringgetRoomNumber()67. returnroomNumber;68. 69. publicvoidsetRoomNumber(StringroomNumber)70. this.roomNumber=roomNumber;71. 72. publicStringgetInvoiceType()73. returninvoiceType;74. 75. publicvoidsetInvoiceType(StringinvoiceType)76. this.invoiceType=invoiceType;77. 78. publicStringgetStatus()79. returnstatus;80. 81. publicvoidsetStatus(Stringstatus)82. this.status=status;83. 84. 85. 4)页面处理Java代码1. 2. 3. 4. NO.5. 培训计划6. 报名人数7. 操作8. 9. 10. 11. 12. 13. $s.index+114. $item215. $item316. 17. 18. aclass=iconicon_train_edithref=19. aclass=iconicon_train_deletehref=/$item0.htmtitle=确定要删除吗?删除后数据将不可恢复20. 21. 22. 23. 24. 25. 26. 27. 28. 共$totalCount条数据.29. atitle=首页href=首页30. 31. 上一页32. 33. 34. atitle=上一页href=上一页35. 36. 37. ahref=38. 39. $pageNo40. 41. 42. $pageNo43. 44. 45. 46. 47. 下一页48. 49. 50. atitle=下一页href=下一页51. 52. atitle=尾页href=尾页53. 54. 55. 56. 57. 58. 第二种createNativeQuery(返回方式为实体对象集合)1)dao层代码Java代码1. SuppressWarnings(unchecked)2. publicPageResultgetList(IntegercurrentPage)3. intpageSize=Constant.DEFAULT_PAGE_SIZE;4. intstart=(currentPage-1)*pageSize;5. Stringsql=selecta.*6. +fromtrain_applyainnerjointrain_planbonb.ID=a.PLAN_ID;7. PageResultpageResult=newPageResult();8. 9. Queryquery=getEntityManager().createNativeQuery(sql.toString(),TrainApply.class);10. inttotal=query.getResultList().size();11. /判断分页12. if(start0)13. query.setFirstResult(start);14. query.setMaxResults(pageSize);15. pageResult.setFirst(start);16. pageResult.setPageSize(pageSize);17. 18. pageResult.setTotalCount(total);1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论