4-3、细说IDEA Spring MyBatis 之 再升级,实现分页查询

1.准备好底层实现
1-1、页面返回结果类 PageResult

package com.cm.aps.page;

import java.util.List;

public class PageResult {
    
    
    /**
     * 当前页码
     */
    private int pageNum;
    /**
     * 每页数量
     */
    private int pageSize;
    /**
     * 记录总数
     */
    private long totalSize;
    /**
     * 页码总数
     */
    private int totalPages;
    /**
     * 分页数据
     */
    private List<?> content;
    public int getPageNum() {
    
    
        return pageNum;
    }
    public void setPageNum(int pageNum) {
    
    
        this.pageNum = pageNum;
    }
    public int getPageSize() {
    
    
        return pageSize;
    }
    public void setPageSize(int pageSize) {
    
    
        this.pageSize = pageSize;
    }
    public long getTotalSize() {
    
    
        return totalSize;
    }
    public void setTotalSize(long totalSize) {
    
    
        this.totalSize = totalSize;
    }
    public int getTotalPages() {
    
    
        return totalPages;
    }
    public void setTotalPages(int totalPages) {
    
    
        this.totalPages = totalPages;
    }
    public List<?> getContent() {
    
    
        return content;
    }
    public void setContent(List<?> content) {
    
    
        this.content = content;
    }
}

1-2.页面控制类 PageRequest

package com.cm.aps.page;

import java.util.HashMap;
import java.util.Map;

public class PageRequest {
    
    
    /**
     * 当前页码
     */
    private int pageNum;
    /**
     * 每页数量
     */
    private int pageSize;

    public int getPageNum() {
    
    
        return pageNum;
    }
    public void setPageNum(int pageNum) {
    
    
        this.pageNum = pageNum;
    }
    public int getPageSize() {
    
    
        return pageSize;
    }
    public void setPageSize(int pageSize) {
    
    
        this.pageSize = pageSize;
    }
}

1-3、页面操作类

package com.cm.aps.page;

import com.github.pagehelper.PageInfo;

public class PageUtils {
    
    
    public static PageResult getPageResult(PageRequest pageRequest, PageInfo<?> pageInfo) {
    
    
        PageResult pageResult = new PageResult();
        pageResult.setPageNum(pageInfo.getPageNum());
        pageResult.setPageSize(pageInfo.getPageSize());
        pageResult.setTotalSize(pageInfo.getTotal());
        pageResult.setTotalPages(pageInfo.getPages());
        pageResult.setContent(pageInfo.getList());
        return pageResult;
    }
}

2.修改服务接口

package com.cm.aps.service;

import com.cm.aps.model.S_apscode;
import com.cm.aps.page.PageRequest;
import com.cm.aps.page.PageResult;

import java.util.List;

public interface S_apscodeService extends CurdService {
    
    
    //根据制程代号查询制程
    S_apscode findbycode(String code);
    //查询全部
    List<S_apscode> findAll();
    //根据代号删除
    int deletebycode(String code);
    //添加
    int insert(S_apscode s_apscode);
    //更新
    int update(S_apscode s_apscode);
    //分页
    PageResult findPage(PageRequest pageRequest);

}

3.修改服务类

package com.cm.aps.service.impl;

import com.cm.aps.dao.S_apscodeMapper;
import com.cm.aps.model.S_apscode;
import com.cm.aps.page.PageRequest;
import com.cm.aps.page.PageResult;
import com.cm.aps.page.PageUtils;
import com.cm.aps.service.S_apscodeService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
@Service
public class S_apscodeServiceimpl implements S_apscodeService {
    
    
    @Autowired
    private S_apscodeMapper s_apscodeMapper;

    @Override
    public S_apscode findbycode(String code) {
    
    
        return s_apscodeMapper.findbycode(code);
    }

    @Override
    public List<S_apscode> findAll() {
    
    
        return s_apscodeMapper.findAll();
    }

    @Override
    public int deletebycode(String code) {
    
    
        return s_apscodeMapper.deletebycode(code);
    }

    @Override
    public int insert(@Param(value = "s_apscode") S_apscode s_apscode) {
    
    
            return s_apscodeMapper.insert(s_apscode);
    }

    @Override
    public int update(S_apscode s_apscode) {
    
    
        return s_apscodeMapper.update(s_apscode);
    }

    @Override
    public PageResult findPage(PageRequest pageRequest) {
    
    
        return PageUtils.getPageResult(pageRequest, getPageInfo(pageRequest));
    }

    private PageInfo<S_apscode> getPageInfo(PageRequest pageRequest) {
    
    
        int pageNum = pageRequest.getPageNum();
        int pageSize = pageRequest.getPageSize();
        PageHelper.startPage(pageNum, pageSize);
        List<S_apscode> sysMenus = s_apscodeMapper.selectPage();
        return new PageInfo<S_apscode>(sysMenus);
    }

    @Override
    public int save(Object record) {
    
    
        S_apscode recordCopy=(S_apscode)record;

        if((recordCopy.getId()==null)){
    
    //INSERT
           return insert(recordCopy);

        }else{
    
    
           return s_apscodeMapper.updateById(recordCopy);
        }
    }

    @Override
    public int delete(Object record) {
    
    
        return 0;
    }

    @Override
    public int delete(List records) {
    
    
        return 0;
    }

    @Override
    public Object findById(Long id) {
    
    
        return null;
    }
}

4.修改映射接口

package com.cm.aps.dao;

import com.cm.aps.model.S_apscode;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface S_apscodeMapper {
    
    
    //根据制程代号查询制程
    S_apscode findbycode(String code);
    //查询全部
    List<S_apscode> findAll();
    //新增
    int insert(@Param(value = "s_apscode")S_apscode s_apscode);
    //删除
    int deletebycode(String code);
    //修改
    int updateById(@Param(value = "s_apscode")S_apscode s_apscode);

    int update(@Param(value = "s_apscode")S_apscode s_apscode);
    //分页
    List<S_apscode> selectPage();

}

5.添加外部接口

package com.cm.aps.controller;

import com.cm.aps.model.S_apscode;
import com.cm.aps.page.PageRequest;
import com.cm.aps.service.S_apscodeService;
import com.cm.aps.util.HttpResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("Apscode")
@CrossOrigin
public class S_apscodeController {
    
    
    @Autowired
    private S_apscodeService s_apscodeService;

    @GetMapping(value="/findByapscode")
    public Object findbycode(@RequestParam String code) {
    
    return s_apscodeService.findbycode(code);}

    @GetMapping(value="/findAll")
    public Object findAll() {
    
    
        return s_apscodeService.findAll();
    }
    @PostMapping(value="/delete")
    public Object deletebycode(@RequestParam(value = "code") String code){
    
     return s_apscodeService.deletebycode(code);}
    @PostMapping(value="/insert")
    public Object insert(@RequestBody(required = true) S_apscode s_apscode){
    
     return s_apscodeService.insert(s_apscode);};

    @PostMapping(value="/findPage")
    public Object findPage(@RequestBody PageRequest pageQuery) {
    
    
        return s_apscodeService.findPage(pageQuery);
    }

    @PostMapping(value="/update")
    public Object update(@RequestBody(required = true) S_apscode s_apscode){
    
     return s_apscodeService.update(s_apscode);};
}

6.测试
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44690195/article/details/106928281