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<Music> findMusicByMusicName(String name);/**查询所有的⾳乐@return*/List<Music> findMusic();
XML映射:
<select id="findMusicByMusicName"resultType="com.example.musicplayer.model.Music">select * from music where title like concat('%',#{musicName},'%')</select><select id="findMusic" resultType="com.example.musicserver.model.Music">select * from music</select>
四、MusicController类新增⽅法
处理HTTP请求并调用Mapper操作:
音乐查询接口
/**根据musicName查询音乐@param musicName@return*/@RequestMapping("/findmusic")public ResponseBodyMessage<List<Music>> findMusic(@RequestParam(required=false)String musicName) {List<Music> musicList = null;if(musicName != null) {musicList = musicMapper.findMusicByMusicName(musicName);}else {//默认查询全部的⾳乐musicList = musicMapper.findMusic();}return new ResponseBodyMessage<>(0,"查询到了歌曲的信息",musicList);}
测试工作
代码仓库:查询音乐接口开发 7.22音乐服务器 - Gitee.com