spring_mvc_jdbc分页程序

jar包不做阐述。参考spring_mvc_jdbc入门。

一.在util类写分页工具。

package com.offcn.util;

import com.offcn.pojo.User;

import java.util.List;

public class PageUtil {
    /*分页的工具类*/
    //当前页
    private  Integer currentPageNo;
    //每页显示条数
    private  Integer pageSize;
   //总记录数
    private  Integer pageCount;
    //总页数
    private  Integer totalPageSize;
    //当前页的数据
    private List<User> userList;

    public Integer getCurrentPageNo() {
        return currentPageNo;
    }

    public void setCurrentPageNo(Integer currentPageNo) {
        this.currentPageNo = currentPageNo;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    public Integer getPageCount() {
        return pageCount;
    }

    public void setPageCount(Integer pageCount) {
        this.pageCount = pageCount;
    }

    public Integer getTotalPageSize() {
        return totalPageSize;
    }

    public void setTotalPageSize(Integer totalPageSize) {
        this.totalPageSize = totalPageSize;
    }

    public List<User> getUserList() {
        return userList;
    }

    public void setUserList(List<User> userList) {
        this.userList = userList;
    }
}

二,建立dao与service。

dao:

public interface UserDao{
 //分页查询,获取数据,第一个参数代表当前页,第二个参数代表页量
     List<User> selectAllUser(Integer currentPageNo,Integer pageSize);

     //查询总记录数
     Integer selectUserCount();
     }
     
     //impl
@Repository("userDao")
public class UserDaoImpl implements UserDao {
     @Override
    public List<User> selectAllUser(Integer currentPageNo, Integer pageSize) {
      List<User> userList= (List<User>) BaseDao.executeQuery ("SELECT * FROM user limit ?,? ",
                new Object[]{(currentPageNo-1)*pageSize,pageSize},
                new BeanListResultHandler (User.class));
        return userList;
    }

    @Override
    public Integer selectUserCount() {

       List list= (List) BaseDao.executeQuery ("SELECT COUNT(1) FROM user ",
        null,
        new ArrayHandler ());
   //list转换为string类 然后转int
        int i = Integer.parseInt (list.get (0)+"");

        return i;
    }
    }

service层:

public interface UserService {


   //分页查询,获取数据,第一个参数代表当前页,第二个参数代表页量
   List<User> selectAllUser(Integer currentPageNo, Integer pageSize);

   //查询总记录数
   Integer selectUserCount();
   //impl
@Service("userService")
public class UserServiceImpl  implements UserService {
    @Resource
    private UserDao userDao;

@Override
    public List<User> selectAllUser(Integer currentPageNo, Integer pageSize) {

        return  userDao.selectAllUser (currentPageNo,pageSize);
    }

    @Override
    public Integer selectUserCount() {

        return  userDao.selectUserCount ();
    }
    }
}

三.controller类:

@Controller
@RequestMapping("/userController")
public class UserController {
  /*   /WEB-INF/jsp/error.jsp*/

    @Resource
    private UserService userService;

    @RequestMapping(value = "/login",method = RequestMethod.POST)
    public String login111(@RequestParam(value = "uname",required = false)String uname,
                        @RequestParam(value = "upwd",required = false)String upwd, Model model){
        User user = userService.selectByName (uname, upwd);
        if(user != null){
            model.addAttribute ("user",user);
            /*
            * redirect代表重定向到,forward转发 默认就是转发*/
           return  "redirect:toPage";
        }

        return "123456";
    }
 @RequestMapping("/toPage")
    public   String toPage(@RequestParam(value = "currentPageNo",required = false) String currentPageNo,
                           @RequestParam(value = "pageSize" ,required = false) String pageSize,Model model) {
     //就是第一次或者没有的时候,就让其显示首页
     if (currentPageNo == "" || currentPageNo == null) {
         currentPageNo = "1";
     }
     if (pageSize == null || pageSize == "") {
         pageSize = "5";
     }


     PageUtil pageUtil = new PageUtil ();
     //给pageUtil赋值,获取查询出来的集合

     List<User> userList = userService.selectAllUser (Integer.parseInt (currentPageNo), Integer.parseInt (pageSize));
       Integer totalCount=userService.selectUserCount ();


       //计算总页数
     Integer totalPageSize=totalCount % Integer.parseInt (pageSize)==0? totalCount/Integer.parseInt (pageSize):totalCount/Integer.parseInt (pageSize)+1;
      //把所有的全部复制到pageutils

     pageUtil.setCurrentPageNo (Integer.parseInt (currentPageNo));
     pageUtil.setPageSize (Integer.parseInt (pageSize));
     pageUtil.setPageCount (totalCount);
     pageUtil.setTotalPageSize (totalPageSize);
     pageUtil.setUserList (userList);
     System.out.println (userList.size ());

     model.addAttribute ("pageUtil",pageUtil);
     return "showInfo";

 }

}

四.showInfo.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<table>
    <tr>
        <th>编号</th> <th>姓名</th> <th>密码</th>
    </tr>
    <c:forEach items="${pageUtil.userList}" var="sss">
        <tr><td>${sss.uid}</td>
        <td>${sss.uname}</td>
        <td>${sss.upwd}</td></tr>
    </c:forEach>
   <%-- <a href=""toPage?currentPageNo=1">首页</a>

    <a href="toPage?currentPageNo=${pageUtil.currentPageNo-1}">上一页</a>

    <a href="toPage?currentPageNo=${pageUtil.currentPageNo+1}">下一页</a>

    <a href="toPage?currentPageNo==${pageUtil.totalpage}">末页</a>--%>


</table>

        <c:choose>
            <c:when test="${ pageUtil.currentPageNo>1}">
                <a href="toPage?currentPageNo=1">首页</a>&nbsp;
                <a href="toPage?currentPageNo=${pageUtil.currentPageNo-1}">上一页</a>&nbsp;
            </c:when>
            <c:otherwise>
                <span style="color:gray">首页</span>&nbsp;
                <span style="color:gray">上一页</span>&nbsp;
            </c:otherwise>
        </c:choose>
       <%-- 当前页数:[${pageUtil.totalPage>0?pageUtil.currentPage:0}/${pageUtil.totalPageSize}]&nbsp;--%>
        <c:choose>
            <c:when test="${pageUtil.currentPageNo < pageUtil.totalPageSize}">
                <a href="toPage?currentPageNo=${pageUtil.currentPageNo+1}">下一页</a>&nbsp;
                <a href="toPage?currentPageNo=${pageUtil.totalPageSize}">末页</a>
            </c:when>
            <c:otherwise>
                <span style="color:gray">下一页</span>&nbsp;
                <span style="color:gray">末页</span>&nbsp;
            </c:otherwise>
        </c:choose>


</body>
</html>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值