SSM+Maven 分页查询

该博客介绍了如何在SSM(Spring、SpringMVC、MyBatis)框架中结合Maven,利用PageHelper插件实现分页查询功能。详细讲解了从添加pom.xml依赖,配置SqlMapConfig,到编写jsp页面和Controller层的实现步骤,包括分页和模糊查询的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先导入pom.xml依赖:

<!-- 分页 -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>4.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.jsqlparser/jsqlparser -->
<dependency>
    <groupId>com.github.jsqlparser</groupId>
    <artifactId>jsqlparser</artifactId>
    <version>0.9.5</version>
</dependency>

SqlMapConfig配置文件:


<!-- 配置分页插件 -->
<plugins>
   <!-- com.github.pagehelper为PageHelper类所在包名 -->
   <plugin interceptor="com.github.pagehelper.PageHelper">
      <!-- 4.0.0以后版本可以不设置该参数 -->
      <property name="dialect" value="mysql"/>
   
   </plugin>
</plugins>
需要在 applicationContext.xml    引入一下SqlMapConfig 文件
<property name="configLocation" value="classpath:SqlMapConfig.xml"></property>

jsp页面:

<span>${stockall.total}条记录当前显示</span><span>现在显示第${stockall.pageNum}</span>

    <a href="/StockController/findStockAll.action?pageNo=${stockall.firstPage}&pageSize=${stockall.pageSize}" >首页</a>

    <c:choose>
    <c:when test="${stockall.isFirstPage==true}">
        <a href="/StockController/findStockAll.action?pageNo=${stockall.firstPage}&pageSize=${stockall.pageSize}" >上一页</a>

    </c:when>

    <c:otherwise>
        <a href="/StockController/findStockAll.action?pageNo=${stockall.prePage}&pageSize=${stockall.pageSize}" >上一页</a>

    </c:otherwise>

</c:choose>

    <c:choose>
        <c:when test="${stockall.isLastPage==true}">
            <a href="/StockController/findStockAll.action?pageNo=${stockall.lastPage}&pageSize=${stockall.pageSize}" >下一页</a>

        </c:when>

        <c:otherwise>
            <a href="/StockController/findStockAll.action?pageNo=${stockall.nextPage}&pageSize=${stockall.pageSize}" >下一页</a>

        </c:otherwise>

    </c:choose>
   


    <a href="/StockController/findStockAll.action?pageNo=${stockall.lastPage}&pageSize=${stockall.pageSize}">尾页</a>


Controller层实现

//查询所有带分页
    @RequestMapping(value = "findStockAll")
    public  String findStockAll(Model model,String pageNo, String pageSize,String stockName) throws UnsupportedEncodingException {
      
        if(stockName!=null){
            stockName=new String(stockName.getBytes("ISO-8859-1"),"utf-8");
        }
        System.out.println(stockName);
        int num = 1;
        int size = 3;

        if(pageNo != null && !"".equals(pageNo)) {
            num = Integer.parseInt(pageNo);
        }
        if (pageSize != null && !"".equals(pageSize)) {
            size = Integer.parseInt(pageSize);
        }

        /**
         * 开始分页
         *
         * @param pageNum      页码
         * @param pageSize     每页显示数量
         * @param count        是否进行count查询
         * @param reasonable   分页合理化,null时用默认配置
         * @param pageSizeZero true且pageSize=0时返回全部结果,false时分页,null时用默认配置
         */
        //开始分页
        PageHelper.startPage(num,size);

        //查询数据库信息

        List<Stock> stockAll = stockService.findStockAll(stockName);
        System.out.println(stockAll);
        //将信息放入PageInfo进行分页
        PageInfo<Stock> pageInfo = new PageInfo<Stock>(stockAll);

        System.out.println(pageInfo.getPageNum());
        System.out.println(pageInfo.getPageSize());
        System.out.println(pageInfo.getTotal());
        System.out.println(pageInfo.getFirstPage());
        System.out.println(pageInfo.getLastPage());
        System.out.println(pageInfo.getPrePage());
        System.out.println(pageInfo.getNextPage());
      
        model.addAttribute("stockall",pageInfo);
        return  "all";
    }
    



以下是模板引擎 页面代码

分页+模糊查询


public String select(String name, String pageNo, String pageSize, HttpSession session){
//设置初始值
        int number=1;
        int size=4;
//判定参数是否为空
        if(pageNo!=null && !"".equals(pageNo))
        {
            number=Integer.parseInt(pageNo);
        }
        if(pageSize!=null && !"".equals(pageSize))
        {
            size=Integer.parseInt(pageSize);
        }
//开始分页
        PageHelper.startPage(number,size);
//调用方法
        List<House> list = houseService.select(name);
        PageInfo<House> info = new PageInfo<House>(list);

        session.setAttribute("pageinfo",info);
        if(name != null && name != ""){
            session.setAttribute("name",name);
        }else{
            session.setAttribute("name",null);
        }
//将分页的信息存进作用域
        return "main";
    }

页面代码--------------------------->

<#if name ??>

             共${pageinfo.total}条当前${pageinfo.pageNum}页${pageinfo.pageSize}条
             <a href="/house/select?name=${name}&pageNo=${pageinfo.firstPage}&pageSize=${pageinfo.pageSize} ">首页</a>
             <#if pageinfo.isFirstPage == true>
                 <a href="/house/select?name=${name}&pageNo=${pageinfo.firstPage}&pageSize=${pageinfo.pageSize} ">上一页</a>
             <#else >
                 <a href="/house/select?name=${name}&pageNo=${pageinfo.prePage}&pageSize=${pageinfo.pageSize} ">上一页</a>
             </#if>

             <#if pageinfo.isLastPage == true>
                 <a href="/house/select?name=${name}&pageNo=${pageinfo.lastPage}&pageSize=${pageinfo.pageSize} ">下一页</a>
             <#else >
                 <a href="/house/select?name=${name}&pageNo=${pageinfo.nextPage}&pageSize=${pageinfo.pageSize} ">下一页</a>
             </#if>
             <a href="/house/select?name=${name}&pageNo=${pageinfo.lastPage}&pageSize=${pageinfo.pageSize} ">尾页</a>

         <#else >

             共${pageinfo.total}条当前${pageinfo.pageNum}页${pageinfo.pageSize}条
             <a href="/house/select?pageNo=${pageinfo.firstPage}&pageSize=${pageinfo.pageSize} ">首页</a>
             <#if pageinfo.isFirstPage == true>
                 <a href="/house/select?pageNo=${pageinfo.firstPage}&pageSize=${pageinfo.pageSize} ">上一页</a>
             <#else >
                 <a href="/house/select?pageNo=${pageinfo.prePage}&pageSize=${pageinfo.pageSize} ">上一页</a>
             </#if>

             <#if pageinfo.isLastPage == true>
                 <a href="/house/select?pageNo=${pageinfo.lastPage}&pageSize=${pageinfo.pageSize} ">下一页</a>
             <#else >
                 <a href="/house/select?pageNo=${pageinfo.nextPage}&pageSize=${pageinfo.pageSize} ">下一页</a>
             </#if>
             <a href="/house/select?pageNo=${pageinfo.lastPage}&pageSize=${pageinfo.pageSize} ">尾页</a>

         </#if>








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值