Spring Boot音乐服务器项目-查询音乐模块
一、项目架构概览
该音乐播放服务器采用经典的MVC分层架构,核心模块包括:
- 实体层:定义数据模型
- Mapper层:数据库操作接口
- Controller层:HTTP请求处理
- 工具层:加密、响应封装等辅助功能
项目核心功能包括用户认证、音乐上传/播放、收藏管理等,下面按分层结构详解实现逻辑。
二、接口设计
- ⽀持模糊查询
- ⽀持传⼊参数为空
请求示例
{ \"method\": \"get\", \"url\": \"/music/findmusic\", \"data\": { \"musicName\": musicName }}
响应示例
- 未给 musicName 传参时
{ \"status\": 0, \"message\": \"查询到了歌曲的信息\", \"data\": [ { \"id\": 19, \"title\": \"银河与星斗(女生版)\", \"singer\": \"gaobo\", \"url\": \"/music/get?path=银河与星斗(女生版)\", \"time\": \"2022-03-28\", \"userid\": 3 }, { \"id\": 20, \"title\": \"liu\", \"singer\": \"bit\", \"url\": \"/music/get?path=liu\", \"time\": \"2022-03-28\", \"userid\": 3 } ]}
- 给 musicName 传参时
{ \"status\": 0, \"message\": \"查询到了歌曲的信息\", \"data\": [ { \"id\": 19, \"title\": \"银河与星斗(女生版)\", \"singer\": \"gaobo\", \"url\": \"/music/get?path=银河与星斗(女生版)\", \"time\": \"2022-03-28\", \"userid\": 3 } ]}
三、Mapper层实现
使用MyBatis实现数据库操作,核心接口:
1. 查询功能Mapper
/** *根据歌曲名字,查询⾳乐 * @param name * @return */ List findMusicByMusicName(String name); /** 查询所有的⾳乐 @return */ List findMusic();
XML映射:
select * from music where title like concat(\'%\',#{musicName},\'%\') select * from music
四、MusicController类新增⽅法
处理HTTP请求并调用Mapper操作:
音乐查询接口
/** 根据musicName查询音乐 @param musicName @return */ @RequestMapping(\"/findmusic\") public ResponseBodyMessage<List> findMusic(@RequestParam(required=false)String musicName) { List musicList = null; if(musicName != null) { musicList = musicMapper.findMusicByMusicName(musicName); }else { //默认查询全部的⾳乐 musicList = musicMapper.findMusic(); } return new ResponseBodyMessage(0,\"查询到了歌曲的信息\",musicList); }
测试工作
代码仓库:查询音乐接口开发 7.22音乐服务器 - Gitee.com