• mybatis分页插件使用案例


    mybatis分页插件使用案例

    • 基于ssm整合案例

    1、导包

    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper</artifactId>
        <version>5.1.2</version>
    </dependency>
    

    2、在mybatis的全局配置文件中配置PageHelper分页插件

    • applicationContext.xml配置文件中要指定mybatis全局配置文件的位置
    <!-- 引入 pageHelper插件,注意这里要写成PageInterceptor, 5.0之前的版本都是写PageHelper, 5.0之后要换成PageInterceptor-->
    <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            <!--reasonable:分页合理化参数,默认值为false,直接根据参数进行查询。当该参数设置为 true 时,pageNum<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页。-->
            <property name="reasonable" value="true"/>
        </plugin>
    </plugins>
    

    3、持久层接口

    package com.yl.dao;
    
    import com.yl.bean.Book;
    import com.yl.bean.PageBook;
    import org.apache.ibatis.annotations.Param;
    
    import java.util.List;
    
    /**
     * 图书持久层接口
     */
    public interface IBookDao {
    
        /**
         * 查询所有图书
         */
        List<Book> queryAll();
    
    }
    
    

    4、持久层映射文件

    <?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.yl.dao.IBookDao">
        <!--配置实体类属性和数据库字段对应关系-->
        <resultMap id="bookMap" type="com.yl.bean.Book">
            <id property="id" column="book_id"></id>
            <result property="name" column="book_name"></result>
            <result property="author" column="book_author"></result>
            <result property="date" column="book_date"></result>
            <result property="price" column="book_price"></result>
        </resultMap>
    
        <!--查询所有图书,写普通的查询即可,插件会自动分页-->
        <select id="queryAll" resultMap="bookMap">
            select * from tb_book
        </select>
    
    </mapper>
    

    5、业务层接口

    package com.yl.service;
    
    import com.github.pagehelper.PageInfo;
    import com.yl.bean.Book;
    import com.yl.bean.PageBook;
    
    import java.util.List;
    
    /**
     * 图书业务层接口
     */
    public interface IBookService {
    
        /**
         * 查询所有图书
         */
        PageInfo<Book> queryAll(int pageCode, int pageSize);
    
    }
    
    

    6、业务层接口实现类

    package com.yl.service.impl;
    
    import com.github.pagehelper.PageHelper;
    import com.github.pagehelper.PageInfo;
    import com.yl.bean.Book;
    import com.yl.bean.PageBook;
    import com.yl.dao.IBookDao;
    import com.yl.service.IBookService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.servlet.ModelAndView;
    
    import java.util.List;
    
    /**
     * 图书业务层接口实现类
     */
    @Service("bookService")
    public class IBookServiceImpl implements IBookService {
        @Autowired
        private IBookDao bookDao;
    
        /**
         * 查询所有图书
         * @param pageCode
         * @param pageSize
         * @return
         */
        @Override
        public PageInfo<Book> queryAll(int pageCode, int pageSize) {
            //分页查询
            PageHelper.startPage(pageCode,pageSize);//写在所有查询之前
            List<Book> bookList=bookDao.queryAll();
            PageInfo<Book> pageInfo = new PageInfo<Book>(bookList);
    
            return pageInfo;
        }
    }
    
    

    7、控制器

    package com.yl.controller;
    
    import com.github.pagehelper.PageInfo;
    import com.yl.bean.Book;
    import com.yl.bean.PageBook;
    import com.yl.service.IBookService;
    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.SessionAttributes;
    import org.springframework.web.servlet.ModelAndView;
    
    import java.util.List;
    
    /**
     * 图书控制器类
     */
    @Controller
    @RequestMapping("/book")
    @SessionAttributes(value = {"pageBook"},types ={PageBook.class} )
    public class BookController {
        @Autowired
        private IBookService bookService;//图书业务层对象
      
        /**
         * 查询所有图书
         */
        @RequestMapping("/queryAll")
        public ModelAndView queryAll(int pageCode){
            int pc=1;//页码,默认为第一页
            int pageSize=3;//页面数据条数
    
            //判断表单页码是否为空
            if (pageCode>0){
                pc=pageCode;
            }
    
            //调用业务层查询所有方法
            PageInfo<Book> pageInfo=bookService.queryAll(pc,pageSize);
    
            ModelAndView modelAndView=new ModelAndView();
            modelAndView.addObject("pageBook",pageInfo);
            modelAndView.setViewName("index");
    
            return modelAndView;
        }
    
    }
    
    

    8、jsp

    <form method="post" action="${pageContext.servletContext.contextPath}/book/queryByPage">
        <table>
            <tr>
                <th>书名</th>
                <th>作者</th>
                <th>出版日期</th>
                <th>价格</th>
            </tr>
            <c:forEach items="${sessionScope.pageBook.list}" var="book">
                <tr>
                    <td>${book.name}</td>
                    <td>${book.author}</td>
                    <td>${book.date}</td>
                    <td>${book.price}</td>
                </tr>
            </c:forEach>
        </table>
        第${sessionScope.pageBook.pageNum}页/共${sessionScope.pageBook.pages}页
        <a href="<c:url value="/book/queryAll?pageCode=1"/>">首页</a>
        <c:if test="${sessionScope.pageBook.pageNum>1}">
            <a href="<c:url value="/book/queryAll?pageCode=${sessionScope.pageBook.pageNum-1}"/>">上一页</a>
        </c:if>
        <c:if test="${sessionScope.pageBook.pageNum<sessionScope.pageBook.pages}">
            <a href="<c:url value="/book/queryAll?pageCode=${sessionScope.pageBook.pageNum+1}"/>">下一页</a>
        </c:if>
        <a href="<c:url value="/book/queryAll?pageCode=${sessionScope.pageBook.pages}"/>">尾页</a>
    </form>
    
    记得快乐
  • 相关阅读:
    springboot(十)使用LogBack作为日志组件
    springboot(九)文件上传
    django 安装
    macbook使用“终端”远程登录linux主机
    Mac 怎么通过自带终端连接linux服务器
    什么是变量?
    选择最好用的PyCharm IDE
    开发你的第一个Python程序
    Python介绍
    PyCharm 2017 安装教程
  • 原文地址:https://www.cnblogs.com/Y-wee/p/13884594.html
Copyright © 2020-2023  润新知