• 小项目----音乐在线播放器


    目录

    音乐播放器

    项目功能:

    项目框架:

    项目的创建很重要:

    数据库设计

    在idea中配置数据库和xml

    一.登录板块设计

    1创建User类

    2创建UserMapper和Controller接口

    3.实现登录

    4加密设置

    5实现加密登录

    二.上传音乐模块设计

    1上传音乐的请求和响应

    2创建MusicController类

    3测试上传​编辑

    4实现数据库上传

    三.播放音乐设计

    1请求和响应设计

    2添加get方法

    四.删除音乐模块设计

    1删除单个音乐

    2批量删除选中音乐

    五.查询音乐模块设计

    1请求和响应设计

    2MusicMapper新增方法

    3配置MusicMapper.xml

    4MusicController新增方法

    六.收藏/移除音乐模块设计

    1添加音乐到lovemiusic

    2查询喜欢的音乐

    3移除收藏音乐

    4完善删除音乐

    七.前端页面实现

    1登录界面

    2上传界面

    3音乐列表页面

    4收藏页面

    5配置拦截器


    音乐播放器

    实现一个小项目,在线音乐服务器

    准备工作:idea(代码编写),apifox/postman(接口调试,我用的前者),一颗不怕出错的心

    项目功能:

    1、登录

    2、上传音乐

    3、删除指定音乐

    4、查询音乐

    5、收藏音乐

    7、移除收藏

    项目框架:

    后端:

    前端:

    数据库:

    首先实现后端方面的代码

    用idea创建一个springboot项目,名称为musicserver---开发工具选择:SpringBootDevTools,Lombok,SpringWeb,Mybatis,MySql.

    项目的创建很重要:

    代码还没开始写,连项目都创建出错岂不是很难受

    创建项目可能会遇到pom.xml报错,大概率是网络原因,一些包没有下载成功.特别注意maven的配置,建议仓库用内置,镜像用阿里云

    设置好还是出错就去maven仓库官网下载报错的包,复制到自己的仓库,然后在pom.xml中修改合适的版本即可

    数据库设计

    创建数据库musicserver,建表user,music,lovemusic、

    -- 数据库
    drop database if exists `musicserver`;
    create database if not exists `musicserver` character set utf8;
    -- 使用数据库
    use `musicserver`;
    DROP TABLE IF EXISTS `user`;
    CREATE TABLE `user` (
    `id` INT PRIMARY KEY AUTO_INCREMENT,
    `username` varchar(20) NOT NULL,
    `password` varchar(255) NOT NULL
    );
    INSERT INTO user(username,password)
    VALUES("sg","$2a$10$Bs4wNEkledVlGZa6wSfX7eCSD7wRMO0eUwkJH0WyhXzKQJrnk85li");
    -- 这是加密后的密码,后文会提到
    INSERT INTO user(username,password)
    VALUES("sg1","123456");
    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
    );
    ​
    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
    );

    在idea中配置数据库和xml

    application.properties

    #配置数据库
    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/musicserver?characterEncoding=utf8&serverTimezone=UTC
    spring.datasource.username=root
    #填你mysql的密码
    spring.datasource.password=
    spring.datasource.driver-class-name=com.mysql.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语句
    #音乐的上传路径
    music.local.path=/自己规定路径即可/local/music
    #日志级别:trace,debug,info,warn,error
    #基本日志
    logging.level.root=INFO
    logging.level.com.example.musicserver.mapper=debug
    #扫描的包:druid.sql.Statement类和frank包
    logging.level.druid.sql.Statement=DEBUG
    logging.level.com.example=DEBUG
    ​
    ​
    ​

    一.登录板块设计

    登录肯定是用户登录,所以应该有一个User类,根据SpringBoot框架,应该有对应的UserMapper和Controller接口来操作User;此外,这些User的信息都应该存储到数据库中,再根据Spring的IOC思想,我们应该运用Mybatis的知识,配置好相应的xml文件

    1创建User类

    为了方便管理,创建好包com.example.musicserver.model

    package com.example.musicserver.model;
    import lombok.Data;
    @Data
    public class User {
        private int id;
        private String username;
        private String password;
    }

    2创建UserMapper和Controller接口

    2.1新建mapper包

    @Mapper
    public interface UserMapper {
      User login(User loginUser);
    }

    2.2配置UsserMapper.xml文件

    resources目录-->mybatis-->UserMapper.xml

    
    
    
    ​
        

    3.实现登录

    3.1登录的请求和响应

    请求:
    {
        post,
        /user/login
        data:{username,password}
    }
    响应:
    {
        "status": 0,
        "message": "登录成功",
        "data": {
        "id": xxxxx,
        "username": xxxxxx,
        "password": xxxxxxxx
        }
    }

    3.2响应体的具体设计,封装成一个类

    musicserver下新建tools包,创建ResponseBodyMessage类

    import lombok.Data;
    ​
    @Data
    public class ResponseBodyMessage  {
        private int status;
        private String message;
        private T data;
    ​
        public ResponseBodyMessage(int status, String message, T data) {
            this.status = status;
            this.message = message;
            this.data = data;
        }
    }
    ​

    tools下新建Constant类,存储后续用到的session请求常量,避免拼写错误带来的报错

    public class Constant {
        public static final String USERINFO_SESSION_KEY = "USERINFO_SESSION_KEY";
    }
    //使用枚举也行

    3.3创建UserController类

    musicserver下新建controller包

    @RestController
    @RequestMapping("/user")
    public class UserController {
        @Autowired
        private UserMapper userMapper;
        @RequestMapping("/login")
        public ResponseBodyMessage login(@RequestParam String username, 
                                               @RequestParam String password,
                                               HttpServletRequest request) {
            User userLogin = new User();
            userLogin.setUsername(username);
            userLogin.setPassword(password);
            User user &
  • 相关阅读:
    redis手动搭建cluster(集群)
    【低码】asp.net core 实体类可生产 CRUD 后台管理界面
    学习与尝试 --> 事件风暴
    Matplotlib绘图基础
    【代码】Android|获取压力传感器、屏幕压感数据(大气压、原生和Processing)
    c语言初阶指针
    (附源码)springboot手工diy网站 毕业设计 310226
    springboot毕设项目(智慧化工MES)质量管理系统f4i11(java+VUE+Mybatis+Maven+Mysql)
    我对《RAG/大模型/非结构化数据知识库类产品》技术架构的思考、杂谈
    MySQL触发器基本结构
  • 原文地址:https://blog.csdn.net/HandsomeDog_L/article/details/126809386