up:: SpringBoot电商项目商品分类模块删除目录分类接口
说明:
(1) 本篇博客需要注意的点:
● 使用PageHelper分页插件,来实现分页功能;即,重点就是在Spring Boot项目中,使用PageHelper分页插件;
● 然后,我们需要根据接口的要求,来决定后台怎么编写;
● 有关PageHelper插件,尤其是Page对象和PageInfo对象,可以参考【附加PageHelper分页插件的Page和PageInfo的区别】;
一:先看下接口文档和接口说明;
(1)后台的【分类列表(平铺)】接口:对应的界面效果;
通过项目演示,可以看到,【分类列表(平铺)】接口,主要的任务就是完成分页的功能;
(2)后台的【分类列表(平铺)】接口:接口文档要求;
该接口的返回内容:
通过接口返回内容,可以看到【分类列表(平铺)】接口,是无差别的查询imooc_mall_category表,同时加入了分页功能;而且,可以看到,其要求接口的返回内容中的data需要是一个PageInfo分页对象;
二:分页技术,分析;
(1)以前接触过的分页查询;
以前在介绍Mybatis和Mybatis-Plus的时候,介绍过分页查询;可以先去快速看看;
(1) 在Mybatis中:在介绍Mybatis的时候,【MyBatis进阶五:PageHelper分页插件;】介绍了一款可以用在Mybatis上的一款分页插件PageHelper(PS:这个插件不隶属于Mybatis,只是别人针对Mybatis开发的一款插件);
(2) 我们在【SSM整合Mybatis-Plus】中,介绍了在Spring MVC项目中,配置Mybatis-Plus,以及Mybatis-Plus的分页插件;
(3) 在【Mybatis-Plus开发步骤:简述】及后面几篇博客,介绍了Mybatis-Plus分页插件的具体应用;
(2)根据接口要求,分页功能分析;
因为,接口文档中要求,返回中的data,需要是一个【PageInfo对象,序列化JSON】;所以,可以使用PageHelper分页插件(具体是使用PageHelper中的PageInfo对象),来完成这个需求;
有关,PageHelper中的Page对象和PageInfo对象的区别,可以参考【附加PageHelper分页插件的Page和PageInfo的区别】;
(3)本篇博客,重点是如何在Spring Boot项目中,使用PageHelper分页插件;
本篇博客的分页,采用的就是PageHelper这个分页插件;只是,我们之前介绍PageHelper的时候,是在纯Mybatis项目中,使用的;而,本篇博客就是在Spring Boot项目中使用PageHelper分页插件;
这二者基本上是一样的,只是在引入依赖等处存在略微的差别;
二:正式开发;
1.在CategoryController中,编写后台目录列表的方法:listCategoryForAdmin()方法;
说明:
(1) url,请求方式,参数,要符合接口要求;
(2) 因为这儿只有两个个参数,参数不多,所以没有使用JavaBean接受,而是直接用方法参数去接收了;
(3) 因为,接口返回中,data数据,要求是PageInfo对象;所以,如果一切成功时,ApiRestResponse统一返回对象的data,我们设为PageInfo;
(4) service层的查询数据方法,在下一部分介绍;
2.在CategoryServiceImpl实现类中,编写分页查询的方法listForAdmin();然后在CategoryService接口中,反向生成方法的声明;
(1)在CategoryServiceImpl实现类中,编写分页查询的方法listForAdmin();
说明:
(1) 这儿使用到了PageHelper分页插件;主要使用到了其中的PageInfo对象;所以,为了使用PageHelper分页插件,我们需要在pom.xml中引入PageHelper分页插件的依赖;
(2) Dao层的selectList()方法,是查询所有目录分类数据;具体内容,在下一部分介绍;
(2)然后在CategoryService接口中,反向生成方法的声明;
3.在CategoryMapper接口中,定义查询所有分类目录的方法selectList();然后在CategoryMapper.xml中编写方法的SQL;
(1)在CategoryMapper接口中,定义查询所有分类目录的方法selectList();
(2)在CategoryMapper.xml中编写方法的SQL;
说明:
(1) 这个SQL很简单,就是查询所有分类目录数据;
4.启动项目,测试;
PS:后台的【分类列表(平铺)】接口需要是管理员用户登录,才能操作;
为了方便观察,把调用接口返回的data数据,复制出来,通过一个json.cn这个接口格式化在线工具,看一下;
其实,我们接口返回这些数据后,交给前端就行了;前端会根据这些数据,组织显示;