文章目录
效果演示
1. 创建SpringBoot项目
2. 数据库设计
3. 配置数据库和xml
4. 登录模块设计
4.1 创建User类
4.2 创建对应的Mapper和Controller
5. 实现登录
5.1 登录的请求和响应设计
5.2 请求实现
5.3 响应实现
5.31 设置统一的响应体类工具类
5.32 创建常量工具类
5.33 优化后完整代码
6. 实现加密登录
6.1 Bcrypt加密设计
6.2 加密登录实现
6.21 创建包config,新建AppConfig类
6.3 加密登录完整实现
7. 上传音乐模块设计
7.1 上传音乐的请求和响应设计
7.2 新建 music 实体类
7.3 实现服务器上传
创建 MusicController 类
7.4 如何判断上传的文件是mp3
7.5 实现数据库上传
实现 MusicMapper
实现 MusicMapper.xml
进行 数据库上传
完整代码
8. 播放音乐模块设计
8.1 实现 ResponseEntity 类
9. 删除音乐模块设计
9.1 删除单个音乐
9.2 批量删除
效果演示
1. 创建SpringBoot项目
2. 数据库设计
创建 user 表:
用户 id,用户名 username,用户密码 password
创建 music 表:
音乐 id,音乐名称 title,歌手名称 singer,时间 time,歌曲路径 url,对应上传音乐的用户 userid
创建 lovemusic 表(中间表):
音乐 id,对应的用户id user_id,对应的音乐id music_id
-- 数据库
drop database if exists `onlinemusic`;
create database if not exists `onlinemusic` character set utf8;
-- 使用数据库
use `onlinemusic`;
-- 创建 user表
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`username` varchar(20) NOT NULL,
`password` varchar(255) NOT NULL
);
-- 创建 music 表
DROP TABLE IF EXISTS `music`;
CREATE TABLE `music` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`title` varchar(50) NOT NULL,
`singer` varchar(30) NOT NULL,
`time` varchar(13) NOT NULL,
`url` varchar(1000) NOT NULL,
`userid` int(11) NOT NULL
);
-- 创建 lovemusic
DROP TABLE IF EXISTS `lovemusic`;
CREATE TABLE `lovemusic` (
`id` int PRIMARY KEY AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`music_id` int(11) NOT NULL
);
3. 配置数据库和xml
打开application.properties配置如下信息:
#配置数据库
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/onlinemusic?characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=你的密码
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#配置xml
mybatis.mapper-locations=classpath:mybatis/**Mapper.xml
#配置springboot上传文件的大小,默认每个文件的配置最大为15Mb,单次请求的文件的总数不能大于100Mb
spring.servlet.multipart.max-file-size = 15MB
spring.servlet.multipart.max-request-size=100MB
# 配置springboot日志调试模式是否开启
debug=true
# 设置打印日志的级别,及打印sql语句
#日志级别:trace,debug,info,warn,error
#基本日志
logging.level.root=INFO
logging.level.com.example.onlinemusic.mapper=debug
#扫描的包:druid.sql.Statement类和frank包
logging.level.druid.sql.Statement=DEBUG
logging.level.com.example=DEBUG
4. 登录模块设计
4.1 创建User类
在package com.example.onlinemusic.model包中创建User类
@Data
public class User {
private int id;
private String username;
private String password;
}
4.2 创建对应的Mapper和Controller
1.新建mapper包,在mapper包下新建UserMapper
@Mapper
public interface