音乐项目后台管理系统出现的问题

news2024/9/25 7:23:37

1.当对歌手的歌曲进行编辑时候,会把所有的歌曲信息给修改了。

解决方法:修改controller层的中SongController代码中的这一行代码

boolean flag = songService.updateById(song);

2.添加歌曲,在弹出框中输入,没有显示。原因:前端页面没有绑定相应元素。

<!--===============================错误代码 SongPage.vue==============================-->
        <el-dialog title="添加歌曲" :visible.sync="centerDialogVisible" width="400px" center>
            <el-form :model="registerForm" ref="registerForm" label-width="80px" enctype="multipart/form-data" id="tf">
                <div>
                    <label>歌名</label>
                    <el-input type="text" name="name"></el-input>
                </div>
                <div>
                    <label>专辑</label>
                    <el-input type="text" name="introduction"></el-input>
                </div>
                <div>
                    <label>歌词</label>
                    <el-input type="textarea" name="lyric"></el-input>
                </div>
                <div>
                    <br>
                    <label>歌曲上传</label>

                    <el-input type="file" name="file"></el-input>
                </div>
            </el-form>
            <span slot="footer">
                <el-button size="mini" @click="centerDialogVisible = false">取消</el-button>
                <el-button size="mini" @click="addSong">确定</el-button>
            </span>
        </el-dialog>
<!--======================================修改之后的代码===============================-->
 <el-dialog title="添加歌曲" :visible.sync="centerDialogVisible" width="400px" center>
      <el-form :model="registerForm" ref="registerForm" label-width="80px" enctype="multipart/form-data" id="tf">
        <div>
          <label>歌名</label>
          <el-input type="text" v-model="registerForm.name"></el-input>
        </div>
        <div>
          <label>专辑</label>
          <el-input type="text" v-model="registerForm.introduction"></el-input>
        </div>
        <div>
          <label>歌词</label>
          <el-input type="textarea" v-model="registerForm.lyric"></el-input>
        </div>
        <div>
          <br>
          <label>歌曲上传</label>
          <input type="file" name="file">
        </div>
      </el-form>
      <span slot="footer">
                <el-button size="mini" @click="centerDialogVisible = false">取消</el-button>
                <el-button size="mini" @click="addSong">确定</el-button>
            </span>
    </el-dialog>

3.添加歌手失败

后端抛出这个错误,原因:参数不匹配。

java.lang.IllegalArgumentException: argument type mismatch
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.ibatis.reflection.invoker.MethodInvoker.invoke(MethodInvoker.java:44)
	at org.apache.ibatis.reflection.wrapper.BeanWrapper.setBeanProperty(BeanWrapper.java:180)
	at org.apache.ibatis.reflection.wrapper.BeanWrapper.set(BeanWrapper.java:59)
	at org.apache.ibatis.reflection.MetaObject.setValue(MetaObject.java:140)

...........................................................................................
2023-09-10 15:15:02.637 DEBUG 5000 --- [nio-8888-exec-1] o.s.web.servlet.DispatcherServlet        : "ERROR" dispatch for POST "/error", parameters={masked}
2023-09-10 15:15:02.639 DEBUG 5000 --- [nio-8888-exec-1] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController#error(HttpServletRequest)
2023-09-10 15:15:02.656 DEBUG 5000 --- [nio-8888-exec-1] o.s.w.s.m.m.a.HttpEntityMethodProcessor  : Using 'application/json', given [application/json, text/plain, */*] and supported [application/json, application/*+json, application/json, application/*+json]
2023-09-10 15:15:02.656 DEBUG 5000 --- [nio-8888-exec-1] o.s.w.s.m.m.a.HttpEntityMethodProcessor  : Writing [{timestamp=Sun Sep 10 15:15:02 CST 2023, status=500, error=Internal Server Error, path=/singer/add}]
2023-09-10 15:15:02.695 DEBUG 5000 --- [nio-8888-exec-1] o.s.web.servlet.DispatcherServlet        : Exiting from "ERROR" dispatch, status 500

 解决方法:检查实体类发现id字段没有自动赋值,而前端也没有传递id这个参数,同时Mysql数据库又设置了id为主键,不能为空。因此要给id加上注解,让id自增

public class Singer implements Serializable {
    private static final long serialVersionUID = 372984511951162091L;
    /**
    * 主键
    */
    private Integer id;
    /**
    * 姓名
    */
    private String name;
}

//修改如下
public class Singer implements Serializable {
    private static final long serialVersionUID = 372984511951162091L;
    /**
    * 主键
    */
    @TableId(value = "id",type = IdType.AUTO)
    private Integer id;
    /**
    * 姓名
    */
    private String name;

}

4.更新歌曲失败

原因后端中没有写对应的方法。

解决方法我们需要在songController.class中定义该方法。

/**
     * 更新歌曲文件
     */
    @RequestMapping(value = "/updateSongUrl", method = RequestMethod.POST)
    public Object updateSongUrl(@RequestParam("file") MultipartFile avatorFile, @RequestParam("id") int id) {
        JSONObject jsonObject = new JSONObject();
        //如果文件是空的,直接返回
        if (avatorFile.isEmpty()) {
            jsonObject.put(Consts.CODE, 0);
            jsonObject.put(Consts.MSG, "文件上传失败");
            return jsonObject;
        }
        //文件名=当前时间到毫秒+原来的文件名
        String fileName = System.currentTimeMillis() + avatorFile.getOriginalFilename();
        //文件路径
        String filePath = System.getProperty("user.dir") + System.getProperty("file.separator") + "song";
        System.out.println("filePath is"+filePath);
        //如果文件路径不存在,新增该路径
        File file1 = new File(filePath);
        if (!file1.exists()) {
            file1.mkdir();
        }
        //实际的文件地址
        File dest = new File(filePath + System.getProperty("file.separator") + fileName);
        //存储到数据库里的相对文件地址
        String storeAvatorPath = "/song/" + fileName;
        try {
            avatorFile.transferTo(dest);//上传
            Song song = new Song();
            song.setId(id);
            song.setUrl(storeAvatorPath);
            boolean flag = songService.updateById(song);
            if (flag) {
                jsonObject.put(Consts.CODE, 1);
                jsonObject.put(Consts.MSG, "上传成功");
                jsonObject.put("song", storeAvatorPath);
                return jsonObject;
            }
            jsonObject.put(Consts.CODE, 0);
            jsonObject.put(Consts.MSG, "上传失败");
            return jsonObject;
        } catch (IOException e) {
            jsonObject.put(Consts.CODE, 0);
            jsonObject.put(Consts.MSG, "上传失败" + e.getMessage());
        } finally {
            return jsonObject;
        }
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1014108.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML显示中文空格字符,emsp;一个中文字符,ensp;半个中文字符

&emsp;一个中文字符 &ensp;半个中文字符 <ul><li class"li">姓&emsp;&emsp;名&#xff1a;<input type"text" /></li><li class"li">手&ensp;机&ensp;号&#xff1a;<input type"…

SCRUM产品负责人(CSPO)认证培训课程

课程简介 Scrum是目前运用最为广泛的敏捷开发方法&#xff0c;是一个轻量级的项目管理和产品研发管理框架。产品负责人是Scrum的三个角色之一&#xff0c;产品负责人在Scrum产品开发当中扮演舵手的角色&#xff0c;他决定产品的愿景、路线图以及投资回报&#xff0c;他需要回答…

学信息系统项目管理师第4版系列07_项目管理知识体系

1. 项目管理原则 1.1. 勤勉、尊重和关心他人 1.1.1. 关键点 1.1.1.1. 关注组织内部和外部的职责 1.1.1.2. 坚持诚信、关心、可信、合规原则 1.1.1.3. 秉持整体观 1.1.2. 职责 1.1.2.1. 诚信 1.1.2.2. 关心 1.1.2.3. 可信 1.1.2.4. 合规 1.2. 营造协作的项目管理团队…

2019版本idea启动tomcat8.5版本控制台中文乱码

目录 一&#xff0c;检查tomcat安装 二&#xff0c;检查idea配置 前言: 最近使用idea去启动tomcat8.5版本时&#xff0c;控制台语句出现了乱码情况&#xff0c;最终解决了。 情况如下&#xff1a; 一&#xff0c;检查tomcat安装 第一步&#xff1a;检查安装的tomcat找到tomca…

#循循渐进学51单片机#如何学习单片机#not.1

1、了解普通发光二极管的参数&#xff0c;掌握限流电阻的计算方法。 1&#xff09; LED小灯靠电流点亮&#xff0c;电压1.8v~2.2v&#xff0c;电流是1~20ma&#xff0c;在1~5ma亮度有所变化&#xff0c;5MA以上亮度不变。 2&#xff09; 限流电阻的算法一般采用欧姆定律计算。…

C#生产管理进销存系统asp.net+sqlserver

管理员功能&#xff1a; 1&#xff09;系统用户管理 包括管理员的添加、删除和管理员密码修改。 2&#xff09;员工信息管理 包括员工信息、员工工资的添加、查询、修改和删除。 3&#xff09;客户信息管理 包括客户信息的添加、查询、修改和删除&#xff0c;以及客户生日提醒。…

IDM(Internet Download Manager)下载器2024最新版本如何下载?

IDM&#xff08;Internet Download Manager&#xff09;下载器能够兼容支持多种浏览器进行文件下载&#xff0c;很多时候只要复制一个地址IDM的下载弹窗就自动弹出来&#xff0c;有时候不需要下载的时候也会弹&#xff0c;时间久了就会感觉很烦&#xff0c;不过这个问题其实可以…

C#,数值计算——Hashfn1的计算方法与源程序

1 文本格式 using System; using System.Collections; using System.Collections.Generic; namespace Legalsoft.Truffer { public class Hashfn1 { private Ranhash hasher { get; set; } new Ranhash(); private int n { get; set; } public Hash…

【校招VIP】java语言考点之并发相关

考点介绍&#xff1a; 并发在操作系统中是指一个时间段中有几个程序都处于已启动运行到运行完毕之间&#xff0c;且这几个程序都是在同一个处理机上运行&#xff0c;但任一个时刻点上只有一个程序在处理机上运行。并发相关问题在校招面试中出现频次很高。 java语言考点之并发相…

AOSP源码中Android.mk文件中的反斜杠符号(\)的作用和使用

简介 在AOSP&#xff08;Android Open Source Project&#xff09;源码中的Android.mk文件中&#xff0c;反斜杠符号&#xff08;\&#xff09;的主要作用是将一行代码拆分成多行&#xff0c;以提高可读性并帮助组织较长的代码块。这对于定义复杂的构建规则和变量时特别有用。…

笔记1.3 数据交换

如何实现数据通过网络核心从源主机到达目的主机&#xff1f; 数据交换 交换网络&#xff1a; 动态转接动态分配传输资源 数据交换类型&#xff1a; &#xff08;1&#xff09;电路交换 &#xff08;2&#xff09;报文交换 &#xff08;3&#xff09;分组交换 电路交换的特…

长胜证券:怎么跟随主力进出?

跟着现在商场的快速改变和信息的普及化&#xff0c;人们在出资时越来越需求愈加精确的辅导和剖析。尤其是在股票商场&#xff0c;很多人想知道怎么跟从主力进出以获取更高的收益。在这篇文章中&#xff0c;咱们将从多个视点来评论这个论题。 一、了解主力资金的进出方向 首先&…

C语言-学生管理系统(结构体+数组实现)

1. 学生管理系统功能介绍 前面文章里介绍了结构体类型&#xff0c;知道结构体类型里可以存放不同的数据类型&#xff0c;属于一个有序的集合。 这篇文章就使用结构体知识点完成一个小练习&#xff0c;使用结构体数组设计一个简单的学生管理系统&#xff0c;作为结构体知识点的…

Apache Kafka 基于 S3 的数据导出、导入、备份、还原、迁移方案

在系统升级或迁移时&#xff0c;用户常常需要将一个 Kafka 集群中的数据导出&#xff08;备份&#xff09;&#xff0c;然后在新集群或另一个集群中再将数据导入&#xff08;还原&#xff09;。通常&#xff0c;Kafka集群间的数据复制和同步多采用 Kafka MirrorMaker&#xff0…

《向量数据库指南》——Milvus Cloud 版本迭代的依据的是用户的反馈和对市场趋势的判断

我认为需要将其分成两类情况。首先&#xff0c;从产品角度来看&#xff0c;我们必须聆听用户的声音。了解用户的需求、他们对产品的哪些方面感到不便&#xff0c;这是至关重要的。我们始终需要紧跟用户的反馈&#xff0c;因为用户的需求对产品的发展具有重要影响。 当然&#x…

python科研作图

1、气泡图 气泡图是一种在xy轴上显示三个维度的数据的有效方式。在气泡图中&#xff0c;基本上&#xff0c;每个气泡代表一个数据点。横坐标和纵坐标的位置代表两个维度&#xff0c;气泡的大小则代表第三个维度。 在这个例子中&#xff0c;我们用numpy库生成了一些随机数据&a…

亚马逊关于在澳大利亚销售儿童玩具和游戏的政策合规标准是什么?

亚马逊关于在澳大利亚销售儿童玩具和游戏的政策 在亚马逊澳大利亚商城中&#xff0c;设计用于或明确表示专供 14 岁及以下儿童玩耍用的所有商品或材料均视为儿童玩具。 商品根据以下标准确定为“儿童商品”&#xff1a; 预期用途&#xff1a; ASIN 是否可供儿童使用&#xff…

GPT的使用场景及开发方法

GPT&#xff08;Generative Pre-trained Transformer&#xff09;是一系列以Transformer架构为基础的自然语言处理&#xff08;NLP&#xff09;模型&#xff0c;其中最知名的是GPT-3。它们可以用于多种自然语言处理任务和文本生成任务。以下是GPT的一些使用场景和开发调用方法&…

迅为iTOP-iMX6QPLUS-Android6.0下uboot添加网卡驱动

本文档介绍在 iTOP-iMX6Q 和 iTOP-iMX6Q-PLUS 安卓 6.0 的 uboot 上添加网卡驱 动&#xff0c;添加完网卡驱动以后&#xff0c;uboot 就可以正常使用网络了。 1 具体步骤 1.1 修改 mx6sabre_common.h 文件 在 iTOP-iMX6_android6.0.1 源码目录下输入以下命令&#xff0c;打…

基于matlab实现的平面波展开法二维声子晶体能带计算程序

Matlab 平面波展开法计算二维声子晶体二维声子晶体带结构计算&#xff0c;材料是铅柱在橡胶基体中周期排列&#xff0c;格子为正方形。采用PWE方法计算 完整程序: %%%%%%%%%%%%%%%%%%%%%%%%% clear;clc;tic;epssys1.0e-6; %设定一个最小量&#xff0c;避免系统截断误差或除零错…