从零开始搭建仿抖音短视频APP-后端开发短视频业务模块(2)
项目持续更新中:
仿抖音短视频APP
目录
实现数据层mybatis自定义mapper与sql
查询短视频列表api
实现下拉刷新和分页功能
实现数据层mybatis自定义mapper与sql
在数据库中查询:
SELECTv.id as vlogId,v.vloger_id as vlogerId,u.face as vlogerFace,u.nickname as vlogerName,v.title as content,v.url as url,v.cover as cover,v.width as width,v.height as height,v.like_counts as likeCounts,v.comments_counts as commentsCounts,v.is_private as isPrivateFROMvlog vLEFT JOINusers uONv.vloger_id = u.idWHEREv.is_private = 0ORDER BYV.created_timeDESC
我们不仅在首页有查询,在搜索栏中也使用到了
回到我们的项目中:
我们定义一个VlogMapperCustom.xml,自定义Mapper
定义一个接口,与它进行映射
随后写我们的sql语句:
这里的id对应方法,
这里加入的参数,对应我们外部传入的map
在sql中加入我们的参数类型:
还有的一个返回的类型,对应的是我们这里定义的一个类:
这里包含的信息与我们的数据库字段一一对应,并且添加了三个属性,所有视频默认不播放,是否喜欢点赞过这个视频..
在xml文件中:
类型映射到我们的接口:
补充完整我们的sql语句:
这里的格式,我们并没有遵循mybatis的规范,因为有利于dba调优和维护。
查询短视频列表api
现在service层接口:
实现:
先打开前端:
在controller层:
重启类,打开接口文档:
实现下拉刷新和分页功能
下拉刷新会调用我们的查询
1,刷新关注,2刷新推荐
实现分页:
在controller中加入我们的参数:
同时要给一个默认值:
这里与我们的前端对应,分别是页码和我们的每页展示的数量。
1和10是通用变量:
在service接口中:
实现:
PageHelper.startPage(page,pageSize)是一个的切面,把我们相应的sql语句拿到,帮我们做一个分页。
这里的list带有分页功能。
接着要对我们的list进行封装:
@Overridepublic PagedGridResult getIndexVlogList(String search,Integer page,Integer pageSize){PageHelper.startPage(page,pageSize);Map<String,Object> map = new HashMap<>();if(StringUtils.isNotBlank(search)){map.put("search",search);}List<IndexVlogVO> list= vlogMapperCustom.getIndexVlogList(map);
// return list;return setterPagedGrid(list,page);}
在controller中:
@PostMapping("indexList")public GraceJSONResult indexList(@RequestParam(defaultValue = "") String search,@RequestParam Integer page,@RequestParam Integer pageSize){if(page == null){page=COMMON_START_PAGE;}if(pageSize == null){pageSize=COMMON_PAGE_SIZE;}PagedGridResult gridResult = vlogService.getIndexVlogList(search,page,pageSize);return GraceJSONResult.ok(gridResult);}
重启,调试:
在APP主页中就能下拉查看视频了,除此之外还有一个下拉刷新的功能:
还有一个搜索的功能:
点击搜索:
注:这里是一个瀑布流。
点进去之后是我们的查询视频信息,这里我们还没有完成接口》
从零开始搭建仿抖音短视频APP-后端开发短视频业务模块(2)相关推荐
- 从零开始搭建仿抖音短视频APP-后端消息业务模块开发(2)-基础版完结篇
项目持续更新中: 仿抖音短视频APP专栏 目录 系统消息入库保存 MongoDB分页查询系统消息列表 删除系统消息 系统消息入库保存 这里还剩下最后一个点赞评论没有完成 这里如果点赞了你的评论,你们视 ...
- 从零开始搭建仿抖音短视频APP-开发用户业务模块(3)
项目持续更新中: 仿抖音短视频APP专栏 目录 注册登录-BO接受前端参数验证 对BO校验进行统一封装 开发用户是否存在 开发创建用户Service 实现短信注册登录与分布式会话 注册登录-BO接受前 ...
- 从零开始搭建仿抖音短视频APP-构建后端项目
项目持续创作中... 仿抖音短视频APP项目专栏 目录 聚合工程 构建父工程 构建子工程 构建接口工程并且暴露api接口 优雅Restful相应封装 Lombok与多环境profile 数 ...
- 从零开始搭建仿抖音短视频APP-后端开发消息业务模块(1)
项目持续更新中: 仿抖音短视频APP专栏 目录 保存系统消息到MongoDB 系统消息入库保存-关注 系统消息入库保存-点赞短视频 系统消息入库保存-评论与回复 保存系统消息到MongoDB 我们把m ...
- 从零开始搭建仿抖音短视频APP-后端开发短视频业务模块(3)
项目持续更新中: 仿抖音短视频APP专栏 目录 视频详情页展示的数据层实现 视频详情页展示的api实现 短视频下载.复制连接.二维码展示 视频保存到相册 复制链接 二维码展示 实现转为私密或公开视频 ...
- 从零开始搭建仿抖音短视频APP-开发用户业务模块(2)
项目持续创作中: 仿抖音短视频APP项目专栏 目录 安装redis6.0缓存中间件 整合Redis并存储验证码 拦截器限制60s短信发送 优雅异常封装返回拦截器异常 安装redis6.0缓存中间件 需 ...
- 从零开始搭建仿抖音短视频APP--后端开发粉丝业务模块(3)
项目持续创作中: 仿抖音短视频APP专栏 目录 实现用户点赞视频 用户取消点赞 用户是否点赞视频的判断 实现用户点赞视频 用户在点赞我们的视频后,我们需要去实现一些相关的业务, 这里需要对应到数据库的 ...
- 从零开始搭建仿抖音短视频APP--后端开发粉丝业务模块(1)
项目持续更新中: 仿抖音短视频APP专栏 目录 关注短视频博主 Redis技术妙用 取消关注博主 关注短视频博主 在我们的主页中,刷视频时是可以在头像下方进行一个关注 点击头像,进入对方的主页也是可以 ...
- 从零开始搭建仿抖音短视频APP--开发用户业务模块(4)
项目持续更新中: 仿抖音短视频APP专栏 目录 用户退出登录 开发查询用户信息接口 统一封装修改用户信息(一) 统一封装修改用户信息(二) 用户退出登录 此时还没有实现退出登录. 在前端中,我们找到l ...
最新文章
- Multi-Task Learning的几篇综述文章
- mysql 全值匹配什么意思
- 数据结构源码笔记(C语言):英文单词按字典序排序的基数排序
- 八、Java中的i++和++i到底是什么?
- MapReduce中源码分析(map端的过程)
- 凤凰涅槃:从 iBatis 到 MyBatis
- 软件测试系列之四 单元测试(Junit)
- 程序员的发展方向是什么?
- php密送,向多个收件人发送电子邮件 – 抄送:和密送:在PHP中
- 最佳路径搜索(二):启发式搜索(代价一致搜索(Dijkstra search),贪心搜索,A*搜索)
- JAVA web App扫码登录
- Element UI练习
- 大型网站架构技术一览(李智慧著.大型网站技术架构.附录A)
- Linux中vsftpd服务配置(匿名,用户,虚拟用户)
- mongoose 更新保存数据的时候自动插入__v
- 一起写RPC框架(一)RPC之我所见
- 【观察】戴尔科技+VMware:多云演进,步步为“赢”
- Java笔记-面向对象(上)
- 安卓识别exfat_如何使安卓手机能够读写移动硬盘?
- HTML.网页程序设计