Java ssm整合分页(简单易懂的分页)

网上找的例子都很模糊,所以自己弄一个简单的分页分享给大家

效果图:只要数据多就能自动显示:首页,上一页,下一页,尾页的功能

1、分页封装

package com.gx.util;

import java.util.List;

public class PageBean<T> {
	private int currPage;//当前页数
    private int pageSize;//每页显示的记录数
    private int totalCount;//总记录数
    private int totalPage;//总页数
    private List<T> lists;//每页的显示的数据
	
	public PageBean() {
		super();
	}
 
	public int getCurrPage() {
		return currPage;
	}
 
	public void setCurrPage(int currPage) {
		this.currPage = currPage;
	}
 
	public int getPageSize() {
		return pageSize;
	}
 
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}
 
	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 List<T> getLists() {
		return lists;
	}
 
	public void setLists(List<T> lists) {
		this.lists = lists;
	}
	
}

2、XXXMapper.xml:写分页条件

  //分页显示页
  <select id="findByPage" parameterType="java.lang.Integer" resultMap="BaseResultMap">
    select 
    <include refid="Base_Column_List" />
    from b_store limit #{start},#{size} 
  </select>
  //分页总数
  <select id="selectCount"  resultType="int">
    select COUNT(*) from b_store 
  </select>

3、dao

package com.gx.dao;

import java.util.HashMap;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.gx.po.StorePo;

public interface StorePoMapper {
	StorePo findById(int id);
	public boolean insert(StorePo record);
	public boolean edit(StorePo record);
    long sum();
    int deleteById(StorePo record);
    
    List<StorePo> findAllUp();
   
    //注意:这两句才是重点
    List<StorePo> findByPage(HashMap<String,Object> map);
    
    int selectCount();
}

4、service

package com.gx.service;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.ibatis.annotations.Param;
import org.springframework.ui.Model;

import com.gx.common.BaseService;
import com.gx.po.StorePo;
import com.gx.util.PageBean;

public interface IStoreService{
	
	StorePo findById(int id);
	
	public boolean insert(StorePo record);
	
	public boolean edit(StorePo record);
	
    long sum();
    
    int deleteById(StorePo record);
    
	List<StorePo> findAllUp();
	
	int insertReturnId(StorePo store); 
	
    //同样是这两句
	int selectCount();
	 
    PageBean<StorePo> findByPage(int currentPage);
}

5、service.impl

package com.gx.service.impl;

import java.util.HashMap;
import java.util.List;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.gx.dao.StorePoMapper;
import com.gx.po.StorePo;
import com.gx.service.IStoreService;
import com.gx.util.PageBean;

@Transactional
@Service("iStoreService")
public class StoreServiceImpl implements IStoreService{
	
	@Autowired
	private StorePoMapper storePoMapper;

	@Override
	public StorePo findById(int id) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public boolean insert(StorePo record) {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public boolean edit(StorePo record) {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public long sum() {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public int deleteById(StorePo record) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public List<StorePo> findAllUp() {
		// TODO Auto-generated method stub
		return storePoMapper.findAllUp();
	}

	

	@Override
	public int insertReturnId(StorePo store) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public int selectCount() {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public PageBean<StorePo> findByPage(int currentPage) {
		HashMap<String,Object> map = new HashMap<String,Object>();
		PageBean<StorePo> pageBean = new PageBean<StorePo>();
		
	    //封装当前页数
        pageBean.setCurrPage(currentPage);
        
		//每页显示的数据
		int pageSize=5;
		pageBean.setPageSize(pageSize);
		
		//封装总记录数
		int totalCount = storePoMapper.selectCount();
		pageBean.setTotalCount(totalCount);
		
		//封装总页数
		double tc = totalCount;
        Double num =Math.ceil(tc/pageSize);//向上取整
        pageBean.setTotalPage(num.intValue());
      
		map.put("start",(currentPage-1)*pageSize);
		map.put("size", pageBean.getPageSize());
		//封装每页显示的数据
		List<StorePo> lists = storePoMapper.findByPage(map);
		pageBean.setLists(lists);
		
		return pageBean;

	}

	

}

6、web(Controller)

@Controller
@RequestMapping(value="/store")
public class StoreController {
	@Autowired
	private IStoreService iStoreService;
	private IProjectService iProjectService;
	private IProjectTypeService iProjectTypeService;
	private IClerkService iClerkService;
	
	//绑定分页
	@RequestMapping("storeManagement")
    public String storeManagement(@RequestParam(value="currentPage",defaultValue="1",required=false)int currentPage,Model model){
		try {			
			model.addAttribute("pagemsg", iStoreService.findByPage(currentPage));//回显分页数据
			System.out.println(currentPage);
			return "/store/storeManagement";
		} catch (Exception e) {
			e.printStackTrace();
			return "/user/result";
		}
		
    }

7、jsp 表格的都差不多,所以就不写了,直接给出分页栏

<table  border="0" cellspacing="0" cellpadding="0"  width="900px">
			<tr>	 
			<td class="td2">
			   <span>第${requestScope.pagemsg.currPage }/ ${requestScope.pagemsg.totalPage}页</span>  
			   <span>总记录数:${requestScope.pagemsg.totalCount }  每页显示:${requestScope.pagemsg.pageSize}</span>  
			   <span>
			       <c:if test="${requestScope.pagemsg.currPage != 1}">
			           <a href="${pageContext.request.contextPath }/store/storeManagement.do?currentPage=1">[首页]</a>  
			           <a href="${pageContext.request.contextPath }/store/storeManagement.do?currentPage=${requestScope.pagemsg.currPage-1}">[上一页]</a>  
			       </c:if>
			       
			       <c:if test="${requestScope.pagemsg.currPage != requestScope.pagemsg.totalPage}">
			           <a href="${pageContext.request.contextPath }/store/storeManagement.do?currentPage=${requestScope.pagemsg.currPage+1}">[下一页]</a>  
			           <a href="${pageContext.request.contextPath }/store/storeManagement.do?currentPage=${requestScope.pagemsg.totalPage}">[尾页]</a>  
			       </c:if>
			   </span>
			</td>
			</tr>
			</table>

希望能帮到你们

猜你喜欢

转载自blog.csdn.net/weixin_43847313/article/details/84945771