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

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.xdnf.cn/news/16349.html

相关文章:

  • 【自动化运维神器Ansible】Ansible常用模块之archive模块详解
  • QT---概览
  • Spring AI 学习笔记
  • Datawhale 科大讯飞AI大赛(模型蒸馏)
  • 电科金仓 KingbaseES 深度解码:技术突破・行业实践・沙龙邀约 -- 融合数据库的变革之力
  • i节点学习
  • 7月27日星期日今日早报简报微语报早读
  • 从0开始学linux韦东山教程Linux驱动入门实验班(6)
  • Flink2.0学习笔记:Stream API 常用转换算子
  • Java面试实战:电商高并发与分布式事务处理
  • QT开发---网络编程下
  • JVM工具
  • Item16:成对使用new和delete时要采取相同形式
  • Milvus 实战全流程
  • 【重学数据结构】堆 Heap - 最小堆最大堆
  • Qt GUI缓存实现
  • SpringIoCDI
  • Adobe Animate中文版 v2024.24.0.10.14
  • python---类型转换
  • Flink窗口:解锁流计算的秘密武器
  • 9.SpringBoot Web请求参数绑定方法
  • RTSP|RTMP播放器 in Unity:开源不够用?从工程视角重新定义播放器选型
  • 【优选算法】BFS解决最短路问题(单源)
  • LeetCode 1577.数的平方等于两数乘积的方法数
  • Spring 解析 XML 配置文件的过程(从读取 XML 到生成 BeanDefinition)
  • HarmonyOS NEXT 系列之规范开发三方共享包
  • Java学习-------序列化与反序列化
  • MGRE综合实验
  • 【Linux | 网络】传输层(UDP和TCP)
  • 笔记本键盘的启用和禁用