Spring Boot音乐服务器项目-查询音乐模块

一、项目架构概览

该音乐播放服务器采用经典的MVC分层架构,核心模块包括:

  1. 实体层:定义数据模型
  2. Mapper层:数据库操作接口
  3. Controller层:HTTP请求处理
  4. 工具层:加密、响应封装等辅助功能

项目核心功能包括用户认证、音乐上传/播放、收藏管理等,下面按分层结构详解实现逻辑。


二、接口设计
  1. ⽀持模糊查询
  2. ⽀持传⼊参数为空
请求示例
复制代码
{
  "method": "get",
  "url": "/music/findmusic",
  "data": {
    "musicName": musicName
  }
}
响应示例
  1. 未给 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
    }
    ]
    }

  2. 给 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

相关推荐
网易云信14 小时前
重磅认证!网易智企智能融合通信获鸿蒙生态权威认可,斩获「Harmony Trusted SDK」认证
人工智能·后端·aigc
神奇小汤圆14 小时前
我把祖传Java项目重构后,接口响应从3s砍到了200ms,只改了这几行代码
后端
神奇小汤圆14 小时前
面试官:你们项目里的线程池是怎么用的?怎么管理的?
后端
网易云信14 小时前
网易智企IM Web体验馆:一站式在线体验即时通讯
人工智能·后端·aigc
shengjk114 小时前
从 ASCII 到 UTF-8:一部字符集的发展史
后端
卷无止境15 小时前
C++ 中的 `constexpr` 函数:让计算"提前"发生
后端
程序员小假15 小时前
从问题到答案:RAG系统完整处理流程与核心机制深度拆解
后端·面试·agent
程序员老赵16 小时前
服务器文件不想 SFTP 上传?Docker 跑个 File Browser,浏览器就能管理
服务器·docker·开源
喵个咪16 小时前
Go Wind UBA 拆解系列 - 架构总览:三服务、数据流与契约优先
大数据·后端·go
喵个咪16 小时前
Go Wind UBA 拆解系列 - 多租户与安全:两套隔离机制的边界
大数据·后端·go