当前位置: 首页 > news >正文

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}]
}
  1. 给 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

http://www.dtcms.com/a/300431.html

相关文章:

  • 《Foundation 面板:设计、功能与最佳实践解析》
  • Java学习-------序列化与反序列化
  • UV: 下一代 Python 包管理工具
  • golang--虚拟地址空间
  • 阿里 Qwen3 四模型齐发,字节 Coze 全面开源,GPT-5 8 月初发布!| AI Weekly 7.21-7.27
  • 批量重命名带编号工具,附免费地址
  • Android网络框架封装 ---> Retrofit + OkHttp + 协程 + LiveData + 断点续传 + 多线程下载 + 进度框交互
  • linux根据pid获取服务目录
  • 一场关于电商零售增长破局的深圳探索
  • Vulnhub red靶机渗透攻略详解
  • PHP框架之Laravel框架教程:2. 控制器、路由、视图简单介绍
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现标签条码一维码的检测(C#代码,UI界面版)
  • WPFC#超市管理系统(2)顾客管理、供应商管理、用户管理
  • MySQL ROUTER安装部署
  • EasyExcel使用(二:写出)
  • git 提交时排除一个或多个文件
  • mac系统彻底删除mysql并重装
  • 【LeetCode】LRU 缓存 题解
  • 在Podman/Docker容器中为Luckfox Lyra Zero W编译SDK:终极排错指南
  • C 语言第 10 天学习笔记:字符串基础操作与相关函数
  • 在docker中安装frp实现内网穿透
  • Libevent(4)之使用教程(3)配置
  • 比特币运行机制全解析:区块链、共识算法与数字黄金的未来挑战
  • 【micro:bit】从入门到放弃(八):超声波测距、小车巡线、红外避障
  • Redis对象机制详解
  • vue3.6更新哪些内容
  • 如何在 InsCodeAI 上搭建并使用 Jupyter Notebook 环境?
  • spring gateway 配置http和websocket路由转发规则
  • 零基础学习性能测试第五章:JVM性能分析与调优-GC垃圾分代回收机制与优化
  • JVM terminated. Exit code=1