简单描述:需求说后端写一个XX数据的分页接口,给前端口调用,其实有一个PageHelper的工具类可以直接使用但是老大不让用,得用sql写,。小Kiss啦。直接上代码

代码:

//Controller代码
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; @Api(value = "CourseController",tags = "课程查询")
@RestController
@RequestMapping("/client/course")
public class CourseController extends BaseController {
@Autowired
private CourseService courseService; @ApiOperation(value = "获取分页列表")
@RequestMapping(value = "/queryPage", method = RequestMethod.GET, produces = "application/json;charset=utf-8")
public ResultDto queryPage(Integer page,Integer rows,String categoryId){
PageInfo<CourseVo> pageInfo = new PageInfo<CourseVo>();
try {
pageInfo = courseService.queryPage(page,rows);
if(pageInfo.getList().size()< 0){
return ResultDto.success("返回结果无内容");
}
} catch (Exception e) {
e.printStackTrace();
return ResultDto.error();
}
return ResultDto.success(pageInfo);
} } 
//Service代码
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map; @Service
public class CourseService {
@Resource
private CourseMapper courseMapper; public PageInfo<CourseVo> queryPage(Integer page,Integer rows)throws Exception{
Map<String,Integer> param = new HashMap<String,Object>();
Integer firstIndex = (page - 1) * rows;
Integer lastIndex = page * rows;
// 从第几条数据开始 int firstIndex = (currPage - 1) * pageSize;
// 到第几条数据结束 int lastIndex = currPage * pageSize;
param.put("page",firstIndex);
param.put("rows",lastIndex); List<CourseVo> reList = courseMapper.findByPage(param);
// 取分页信息
PageInfo<CourseVo> pageInfo = new PageInfo<CourseVo>(reList);
return pageInfo;
}
//Mapper接口
import com.xx.xxx.xxxx.util.MyMapper;
import java.util.List;
import java.util.Map; public interface CourseMapper extends MyMapper<Course> {
List<CourseVo> findByPage(Map<String,Integer> param);
}  //Mapper.xml中的sql
<select id="findByPage" parameterType="Map" resultMap="CourseVoResultMap">
select * from table_course where is_del = '1' limit #{page},#{rows}
</select>  <resultMap id="CourseVoResultMap" type="CourseVo" >
<result column="course_id" property="courseId" jdbcType="CHAR" />
<result column="course_code" property="courseCode" jdbcType="VARCHAR" />
  ``````
</result> 

That's all !!!   下边来说一说PageHelper的方式

//仅仅是调用就OJBK啦 不过这种查询方式使用的是mybatis的example动态生成sql查询的,不需要你写mapper.xml中的sql了,只需要在对应的类上加上注解
public PageInfo<CourseVo> queryPage(Integer page,Integer rows)throws Exception{
Example example = new Example(CourseVo.class);
example.createCriteria().andEqualTo("isDel", 1);
PageHelper.startPage(page, rows);
List<CourseVo> list = courseMapper.selectByExample(example);//查询
return pageInfo;

Rest分页接口开发的更多相关文章

  1. APP数据接口开发的一些经验

    刚接到这样的任务时,没有感觉到任何压力,不就是给移动端应用提供数据吗?那边发来参数,这边处理数据,返回JSON.做网站开发时经常使用ajax请求后台数据,不就是这么回事吗.于是,在确认完需求后就开始干 ...

  2. API接口开发 配置、实现、测试

    Yii2 基于RESTful架构的 advanced版API接口开发 配置.实现.测试 环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到 ...

  3. 接口开发-基于SpringBoot创建基础框架

    说到接口开发,能想到的开发语言有很多种,像什么Java啊..NET啊.PHP啊.NodeJS啊,太多可以用.为什么选择Java,究其原因,最后只有一个解释,那就是“学Java的人多,人员招聘范围大,有 ...

  4. Python接口开发小知识

    关于数据库设计 接口开发多学习数据库表操作,这是要点 不存在删除数据,每个可能被删除数据的表加一个is_active属性 不同的表可以有多个相同的字段,字段属性少用禁止非空 不要设置太多主外键(高内聚 ...

  5. F5 api接口开发实战手册(二)

    F5 rest api 各对象使用方式详解 本篇文章介绍rest api接口下Collection.Resource.Subcollections.SubResource的各种使用方法.如果您不了解这 ...

  6. odoo中接口开发

    文章参考:https://blog.csdn.net/qq_33472765/article/details/81913627案例0000001接口调用请求说明:https请求方式:GET(请使用ht ...

  7. 《连载 | 物联网框架ServerSuperIO教程》- 13.自定义视图显示接口开发,满足不同的显示需求

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  8. 《Python Web 接口开发与测试》---即将出版

    为什么要出这样一本书? 首先,今年我有不少工作是跟接口自动化相关的,工作中的接口自动化颇有成效. 我一直是一个没有测试大格局的人,在各种移动测试技术爆发的这一年,我却默默耕耘着自己的一亩三分地儿(We ...

  9. 浅谈 PHP 与手机 APP 开发(API 接口开发) -- 转载

    转载自:http://www.thinkphp.cn/topic/5023.html 这个帖子写给不太了解PHP与API开发的人 一.先简单回答两个问题: 1.PHP 可以开发客户端? 答:不可以,因 ...

随机推荐

  1. 分别使用POI和JXL导出数据到Excel

    1.使用POI 引入jar包 <!-- poi HSSF is our port of the Microsoft Excel 97(-2007) file format (BIFF8) to ...

  2. 网路知识总结(session&&Cookie&&三次握手&&请求头)

    1. 请说明Session和Cookie的作用和区别 1) Cookie 存在前端 前端需要拿着cookie访问后端,Session在服务器上(文件,数据库,如Redis) 2) web访问Serve ...

  3. 【THUSC2017】【LOJ2981】如果奇迹有颜色 DP BM 打表 线性递推

    题目大意 有一个 \(n\) 个点的环,你要用 \(m\) 中颜色染这 \(n\) 个点. 要求连续 \(m\) 个点的颜色不能是 $1 \sim m $ 的排列. 两种环相同当且仅当这两个环可以在旋 ...

  4. ML笔记-sklearn.classification_report

    主要用于显示主要分类指标的文本报告,在报告中显示每个类的精确度.召回率.F1等信息 首先数据测试结果分为以下4种情况: TP:预测为正,实现为正 FP:预测为正,实现为负 FN:预测为负,实现为正 T ...

  5. leveldb实现原理

    LevelDb日知录之一:LevelDb 101 说起LevelDb也许您不清楚,但是如果作为IT工程师,不知道下面两位大神级别的工程师,那您的领导估计会Hold不住了:Jeff Dean和Sanja ...

  6. 什么是Annotation

    Annotation 被称为注解,在Java开发中是相当常见的,通过注解,我们可以简化代码提高开发效率.例如Override Annotation,这个应该算是在开发过程中使用最多的注解了.注解(An ...

  7. http 400错误【原】

    http 400错误现象: 使用java代码访问某PDF文件地址, 报了http 400错误 ,浏览器却能正常访问 . 所以猜测浏览器对地址做了额外处理. 异常代码 String srcUrl = & ...

  8. H5_0006:JS判断PC,平板,手机平台的方法

    <script type="text/javascript"> //平台.设备和操作系统var system = { win: false, mac: false, x ...

  9. 078、Docker 最常用的监控方案(2019-04-25 周四)

    参考https://www.cnblogs.com/CloudMan6/p/7637361.html   当 Docker 部署规模逐步变大后,可视化监控容器环境的性能和健康状态会变得越来越重要.   ...

  10. Oracle DB 总结(SQL)

    --SQL结构查询语言 数据库定义语言(DDL)用于建立.删除和修改数据库对象 CREATE ALTER DROP TRUNCATE 数据库操纵语言(DML)用于改变数据库表中的数据 INSERT U ...