承接Spring JPA 查询的几种方式并处理分页01
4)页面处理
Java代码
1. "100%" cellspacing="0" cellpadding="0">
2.
3. class="Train_Resultlist-item">
4. "50">NO.
5.
6.
7.
8.
9.
10.
11. "item" items="${itemList}" varStatus="s">
12.
13.
14.
15.
16.
22.
23.
24.
25.
26. "4">
27. class="green-black">
28. 共${totalCount}条数据.
29. "首页" href="">首页
30. if test="${currentPage le 1}" var="syy">
31. "上一页" href="#">上一页
32. if>
33. if test="${!syy}">
34. "上一页" href="">上一页
35. if>
36. "pageNo" begin="1" end="${pageNumShown}">
37. "">
38. if test="${currentPage eq pageNo}" var="rsFy">
39. ${pageNo}
40. if>
41. if test="${!rsFy}">
42. ${pageNo}
43. if>
44.
45.
46. if test="${currentPage ge pageNumShown}" var="xyy">
47. "下一页" href="#">下一页
48. if>
49. if test="${!xyy}">
50. "下一页" href="">下一页
51. if>
52. "尾页" href="">尾页
53.
54.
55.
56.
57.
58.
第二种createNativeQuery(返回方式为实体对象集合)
1)dao层代码
Java代码
1. @SuppressWarnings("unchecked")
2. public PageResult getList(Integer currentPage){
3. int pageSize = Constant.DEFAULT_PAGE_SIZE;
4. int start = (currentPage - 1) * pageSize;
5. String sql="select a.* "
6. " from train_apply a inner join train_plan b on b.ID=a.PLAN_ID";
7. PageResult pageResult = new PageResult();
8.
9. Query query = getEntityManager().createNativeQuery(sql.toString(),TrainApply.class);
10. int total = query.getResultList().size();
11. // 判断分页
12. if (start < total && pageSize > 0) {
13. query.setFirstResult(start);
14. query.setMaxResults(pageSize);
15. pageResult.setFirst(start);
16. pageResult.setPageSize(pageSize);
17. }
18. pageResult.setTotalCount(total);
19. pageResult.setPageResultList(query.getResultList());
20. return pageResult;
21. }
2)其他与第一种类似,实体类不需要注释@NamedNativeQueries等。页面读取为item.planId类似方法获取数据,而不是item[0],item[1]。。。只是对于复杂的sql好像不太适合,比如说要count(id)某一列,目前用这种方式还不能实现几个表直接复杂字段展现查询。待研究。
培训计划 | 报名人数 | 操作 | |
---|---|---|---|
${s.index 1} | ${item[2]} | ${item[3]} | 17. class="applylist_operate"> 18. class="icon icon_train_edit" href=""> 19. class="icon icon_train_delete" href="/${item[0]}.htm" title="确定要删除吗?删除后数据将不可恢复"> 20. 21. |