文章列表分页查询(条件分页)
 发布时间 
 阅读量: 
 阅读量 




pojo.PageBean
 package com.lin.springboot01.pojo;
    
  
    
 import lombok.AllArgsConstructor;
    
 import lombok.Data;
    
 import lombok.NoArgsConstructor;
    
  
    
 import java.util.List;
    
  
    
 @Data
    
 @NoArgsConstructor
    
 @AllArgsConstructor
    
 public class PageBean <T>{
    
     private Long total; //总条数
    
     private List<T> items; //当前页数据集合
    
 }
        ArticleController
     @GetMapping
    
     public Result<PageBean<Article>> list(
    
         Integer pageNum,
    
         Integer pageSize,
    
        @RequestParam(required = false) Integer categoryId,
    
         @RequestParam(required = false) String state
    
     ){
    
     PageBean<Article> pb = articleService.list(pageNum,pageSize,categoryId,state);
    
     return Result.success(pb);
    
     }
        ArticleService
     //条件分页列表查询
    
     PageBean<Article> list(Integer pageNum, Integer pageSize, Integer categoryId, String state);
        ArticleServiceImpl
     @Override
    
     public PageBean<Article> list(Integer pageNum, Integer pageSize, Integer categoryId, String state) {
    
     //1.创建pagebean对象
    
     PageBean<Article> pb = new PageBean<>();
    
     //2.开启分页查询
    
     PageHelper.startPage(pageNum,pageSize);
    
     //3.调用mapper
    
     Map<String,Object> map = ThreadLocalUtil.get();
    
     Integer userId = (Integer) map.get("id");
    
     List<Article> as = articleMapper.list(userId,categoryId,state);
    
     //Page中提供了方法,可以获取PageHelper分页查询后得到的总记录条数和当前页数据
    
     Page<Article> p = (Page<Article>) as;
    
     //把数据填充到PageBean对象中
    
     pb.setTotal(p.getTotal());
    
     pb.setItems(p.getResult());
    
     return pb;
    
  
    
     }
        ArticleMapper
    List<Article> list(Integer userId, Integer categoryId, String state);
        

必须拼接SQL语句。
我们应当在ArticleMapper.xml文件中编写拼接脚本代码。
注意 :在resours目录下的mapper结构必须与上述一致。
ArticleMapper.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.lin.springboot01.mapper.ArticleMapper">
    
     <!--动态sql-->
    
     <select id="list" resultType="com.lin.springboot01.pojo.Article">
    
     select * from article
    
     <where>
    
         <if test="categoryId!=null">
    
             category_id = #{categoryId}
    
         </if>
    
         <if test="state!=null">
    
             and state = #{state}
    
         </if>
    
         and create_user=#{userId}
    
     </where>
    
     </select>
    
 </mapper>
        完成:

全部评论 (0)
 还没有任何评论哟~ 
