ssh框架中的分页查询
ssh中的分页查询是比较常用的,接下来我用代码来介绍如何实现一个分页查询
首先建立一个Model用来储存查询分页的信息
package com.haiziwang.qrlogin.utils;
import java.util.List;
public class prospage<T> {
private int page; // 当前页数
private int totalCount; // 总记录数
private int totalPage; // 总页数
private int ererypagecount; // 每页显示的记录数
private List<T> list; // 每页显示数据的集合.
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getErerypagecount() {
return ererypagecount;
}
public void setErerypagecount(int ererypagecount) {
this.ererypagecount = ererypagecount;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
@Override
public String toString() {
return "prospage [page=" + page + ", totalCount=" + totalCount + ", totalPage=" + totalPage
+ ", ererypagecount=" + ererypagecount + ", list=" + list + "]";
}
}
这是Dao类查询的代码:
public prospage<pros> findpagebyid(int page,Integer cid){
prospage<pros> prospage = new prospage<pros>();
//设置当前页数
prospage.setPage(page);
//显示每夜记录数
int limit=8;
prospage.setErerypagecount(limit);
//设置总记录数
int totalc=0;
totalc=findcountbycid(cid);
prospage.setTotalCount(totalc);
//设置总页数
int totalpage =0;
if(totalc % limit==0){
totalpage=totalc / limit;
}else{
totalpage=totalc / limit+1;
}
prospage.setTotalPage(totalpage);
//每页显示的数据
//每页从哪开始
int a =(page-1)*limit;
List<pros> list=getpagebycid(cid,a,limit);
prospage.setList(list);
return prospage;
}
//分页查询
public List<pros> getpagebycid(Integer cid, int a, int limit) {
String hql = "select p from pros p join p.secondLei cs join cs.categroy c where c.cid = ?";
Query query = getSession().createQuery(hql).setInteger(0, cid);
List<pros> proslist = query.setFirstResult(a)
.setMaxResults(limit)
.list();
System.out.println("含有多少个"+proslist );
if(proslist != null && proslist.size() > 0){
return proslist ;
}
return null;
}
//根局一级分类查询二级分类的个数
public int findcountbycid(Integer cid) {
String hql="select count(*) from pros p where p.secondLei.categroy.cid=?";
List<Long> listcount= getSession().createQuery(hql).setInteger(0, cid).list();
if(listcount != null && listcount.size() > 0){
return listcount.get(0).intValue();
}
return 0;
}
3接下来就是在Jsp显示查询信息即可
<s:iterator var ="pb" value="pagebean.list">
<li>
<a href="${ pageContext.request.contextPath }/pros_findpro.action?pid=<s:property value="#pb.pid"/>">
<img src="${pageContext.request.contextPath}/<s:property value="#pb.imagepath"/>" width="170" height="170" style="display: inline-block;">
<p style='color:green'>
商品名字: <s:property value="#pb.pname"/>
</p>
<p style='color:red'>
商品价格: <s:property value="#pb.shopprice"/>
</p>
</a>
</li>
</s:iterator>
span>第 <s:property value="pagebean.page"/>/<s:property value="pagebean.totalPage"/> 页</span>
<s:if test="cid!=null">
<a href="${ pageContext.request.contextPath }/pros_findfirstid.action?cid=<s:property value="cid"/>&page=1" class="firstPage"> </a>
<a href="${ pageContext.request.contextPath }/pros_findfirstid.action?cid=<s:property value="cid"/>&page=<s:property value="pagebean.page-1"/>" class="previousPage"> </a>
<s:iterator var="i" begin="1" end="pagebean.totalPage">
<a href="${ pageContext.request.contextPath }/pros_findfirstid.action?cid=<s:property value="cid"/>&page=<s:property value="#i"/>"><s:property value="#i"/></a>
</s:iterator>
<a class="nextPage" href="${ pageContext.request.contextPath }/pros_findfirstid.action?cid=<s:property value="cid"/>&page=<s:property value="pagebean.page+1"/>"> </a>
<a class="lastPage" href="${ pageContext.request.contextPath }/pros_findfirstid.action?cid=<s:property value="cid"/>&page=<s:property value="pagebean.totalPage"/>"> </a>
</s:if>
<s:if test="csid!=null">
<a href="${ pageContext.request.contextPath }/pros_findcsid.action?csid=<s:property value="csid"/>&page=1" class="firstPage"> </a>
<a href="${ pageContext.request.contextPath }/pros_findcsid.action?csid=<s:property value="csid"/>&page=<s:property value="pagebean.page-1"/>" class="previousPage"> </a>
<s:iterator var="i" begin="1" end="pagebean.totalPage">
<a href="${ pageContext.request.contextPath }/pros_findcsid.action?csid=<s:property value="csid"/>&page=<s:property value="#i"/>"><s:property value="#i"/></a>
</s:iterator>
<a class="nextPage" href="${ pageContext.request.contextPath }/pros_findcsid.action?csid=<s:property value="csid"/>&page=<s:property value="pagebean.page+1"/>"> </a>
<a class="lastPage" href="${ pageContext.request.contextPath }/pros_findcsid.action?csid=<s:property value="csid"/>&page=<s:property value="pagebean.totalPage"/>"> </a>
</s:if>
最新文章
- Leetcode 详解(ReverseWords)
- CutJS – 用于 HTML5 游戏开发的 2D 渲染引擎
- ahjesus mongodb指定到数据盘连接不上的解决方案
- 算法_队列的Java通用数组实现
- NSIS脚本根据操作系统版本动态决定默认安装目录
- 基于visual Studio2013解决C语言竞赛题之1074八皇后
- 201521123113《Java程序设计》第11周学习总结
- [LeetCode] 415 Add Strings &;&; 67 Add Binary &;&; 43 Multiply Strings
- 通过路由url携带参数进行参数传递
- php逐行读取txt文件写入数组的方法
- shader程序员需要注意的优化Tips
- 模仿天猫实战【SSM版】——后台开发
- 实验-使用VisualVM或JConsole进行对程序进行性能分析
- RecyclerView嵌套ScrollView导致RecyclerView内容显示不全
- 分布式UUID的生成
- Spark笔记-gz压缩存储到HDFS【转】
- as3.0 在数组中找个找个,并且替换
- 丑女贝蒂第一至四季/全集Ugly Betty迅雷下载
- [LeetCode] 595. Big Countries_Easy tag: SQL
- Java精选笔记_多线程(创建、生命周期及状态转换、调度、同步、通信)