SSM框架中JAVA分页查询怎么写?

1.编写Page工具类

package com.lxw.utils;

import java.util.List;

public class Page {
    //每页显示的个数
    private Integer pageSize;
    //当前显示的页数
    private Integer pageNumber;
    //总页数
    private Integer total;
    //显示的数据
    private List<?> list;
    public Integer getPageSize() {
            return pageSize;
    }
    public void setPageSize(Integer pageSize) {
            this.pageSize = pageSize;
    }
    public Integer getPageNumber() {
            return pageNumber;
    }
    public void setPageNumber(Integer pageNumber) {
            this.pageNumber = pageNumber;
    }
    public Integer getTotal() {
            return total;
    }
    public void setTotal(Integer total) {
            this.total = total;
    }
    public List<?> getList() {
            return list;
    }
    public void setList(List<?> list) {
            this.list = list;
    }
}

2.编写mapper层(dao层)

注意:这里要查询到全部记录

package com.lxw.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import com.lxw.pojo.Book;

public interface BookMapper {

    /**
     * 查询共有多少条图书记录
     * @return
     */
    int selCount();
    
    /**
     * 分页查询
     * @param beginIndex
     * @param pageCount
     * @return
     */
    List<Book> selPageList(@Param("pageNumber")Integer pageNumber,@Param("pageSize")Integer pageSize);
}

3.BookMapper.xml文件编写

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lxw.mapper.BookMapper">
    <!--查询共有多少条记录  -->
    <select id="selCount" resultType="int">
    SELECT COUNT(1) FROM books
    </select>
    
    <!--分页查询全部信息-->
    <select id="selPageList" resultType="Book" parameterType="Integer">
        select * from books limit #{pageNumber},#{pageSize}
    </select>
    
</mapper>

4.service层编写

package com.lxw.service;

import com.lxw.utils.Page;

public interface BookService {

    Page selPageList(Integer pageNumber,Integer pageSize);
}

5.serviceImpl层编写!!!

package com.lxw.serviceImpl;

import java.util.List;

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

import com.lxw.mapper.BookMapper;
import com.lxw.pojo.Book;
import com.lxw.service.BookService;
import com.lxw.utils.Page;
@Service
public class BookServiceImpl implements BookService{

    @Autowired
    private BookMapper bookMapper;
    
    @Override
    public Page selPageList(Integer pageNumber, Integer pageSize) {
        Page page=new Page();
        
        //总条数
        Integer count=bookMapper.selCount();
        //每页条数
        page.setPageSize(pageSize);
        //总页数
        page.setPageNumber(pageNumber);
        //显示内容
        List<Book> list=bookMapper.selPageList(pageSize*(pageNumber-1), pageSize);
        //查询到的信息放到集合中
        page.setList(list);
        //总页数
        page.setTotal(count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
        
        return page;
    }

    
}

6.Controller层编写

package com.lxw.controller;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import com.lxw.service.BookService;

@Controller
@RequestMapping("/book")
public class BookController {

    @Autowired
    private BookService bookService;
    
    @RequestMapping("/show")
    public ModelAndView showPlus(@RequestParam(value = "pageNumber",defaultValue = "1")Integer pageNumber,@RequestParam(value = "pageSize",defaultValue = "3")Integer pageSize) {
        ModelAndView modelAndView=new ModelAndView("index");
        modelAndView.addObject("page", bookService.selPageList(pageNumber, pageSize));
        return modelAndView;
    }
    
     
}

6.index.jsp页面显示

这里主要是要显示点击效果,然后判断上一页和下一页来优化效果

<%@page import="org.springframework.ui.Model"%>
<%@page import="com.lxw.pojo.Book"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
<%
   /*  Book book=(Book)request.getAttribute("list");
	if (book == null) {
		request.getRequestDispatcher("/book/sel").forward(request, response);
		return;
	} */
%>
    <base href="<%=basePath%>">   
    <title></title>       
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">   
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="This is my page">
 </head>
 <body style="text-align: center;">
 <form action="" mathod="post">
		 <select name="bookType">
		 <option value="0">书名</option>
		 <option value="1">作者</option>
		 <option value="2">出版社</option>
		 </select>
		 <input/>
		 <input type="button" value="提交"/>
		 <br/>
		 <a href="add.jsp">增加新书</a>
		 <table border="" cellspacing="0px" cellpadding="5px" align="center" width="600px">
		 	<tr style="background-color: #1A66B3;"><th>书名</th><th>作者</th><th>出版社</th><th>页数</th><th>价格</th></tr>
		 	<c:forEach items="${page.list}" var="l">
		 	<tr>
		 	<td>${l.bookName}</td>
		 	<td>${l.bookAuthor}</td>
		 	<td>${l.bookPublish}</td>
		 	<td>${l.bookPage}</td> 
		 	<td>${l.bookPrice}</td>
		 	</tr>
		 	</c:forEach>
		 </table>
			<a href="/book/show?pageNumber=1&pageSize=3" aria-label="Previous">首页</a>&nbsp;&nbsp;
			<a href="/book/show?pageNumber=${page.pageNumber-1}&pageSize=${page.pageSize}" <c:if test="${page.pageNumber<=1}">onclick="javascript:return false;"</c:if>>上一页</a>&nbsp;&nbsp;
			<a href="/book/show?pageNumber=${page.pageNumber+1}&pageSize=${page.pageSize}" <c:if test="${page.pageNumber>=page.total}">onclick="javascript:return false;"</c:if>>下一页</a>&nbsp;&nbsp;
			<a href="/book/show?pageNumber=${page.total}&pageSize=${page.pageSize}" aria-label="Next">尾页</a>&nbsp;&nbsp;
			<span>第${page.pageNumber}页/共${page.total}页</span>
		 </form>
		 <p style="color: red;">${result}</p>
 </body>
</html>

 

7.展示效果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值