Music findMusicById(int id);
int deleteMusicById(int musicId);
其次新增相对应的.xml代码:
java复制代码
<select id="findMusicById" resultType="com.example.spring_musicserver_1113.model.Music">
select * from music where id = #{id};
</select>
<delete id="deleteMusicById" parameterType="java.lang.Integer">
delete from music where id = #{id};
</delete>
最后musiccontroller代码:
java复制代码
/**
* 删除单个音乐
* @param id
* @return
*/
@RequestMapping("/delete")
public ResponseBodyMessage<Boolean> deleteMusicById(@RequestParam String id){
//1、检查当前ID的音乐是否存在
int iid = Integer.parseInt(id);
//2、如果当前ID音乐存在的话就要删除
Music music = musicMapper.findMusicById(iid);
if(music == null){
System.out.println("没有查询到当前id的音乐");
return new ResponseBodyMessage<>(-1,"没有查询到当前id的音乐",false);
}else {
//2.1 删除数据路
int ret = musicMapper.deleteMusicById(iid);
if(ret == 1){
//2.2 删除服务器上的数据
int index = music.getUrl().lastIndexOf("=");
String fileName = music.getUrl().substring(index+1);
File file = new File(SAVE_PATH+"/"+fileName+".mp3");
System.out.println("当前的路径"+file.getPath());
if (file.delete()){
return new ResponseBodyMessage<>(0,"服务器中的音乐删除成功",true);
}else {
return new ResponseBodyMessage<>(-1,"服务器中的音乐删除失败",false);
}
}else {
return new ResponseBodyMessage<>(-1,"数据库当中的音乐没有删除成功",false);
}
}
}
@RequestMapping("/deleteSel")
public ResponseBodyMessage<Boolean> deleteSelMusic(@RequestParam("id[]")
List<Integer> id){
System.out.println("所有的id"+ id);
int sum = 0;
for (int i = 0; i < id.size(); i++) {
Music music = musicMapper.findMusicById(id.get(i));
if(music == null){
System.out.println("没有查询到当前id的音乐");
return new ResponseBodyMessage<>(-1,"没有查询到当前id的音乐",false);
}
int ret = musicMapper.deleteMusicById(id.get(i));
if(ret == 1) {
int index = music.getUrl().lastIndexOf("=");
String fileName = music.getUrl().substring(index + 1);
File file = new File(SAVE_PATH + "/" + fileName + ".mp3");
if (file.delete()) {
sum += ret;
} else {
return new ResponseBodyMessage<>(-1, "服务器中的音乐删除失败", false);
}
}else {
return new ResponseBodyMessage<>(-1,"数据库当中的音乐没有删除成功",false);
}
}
if(sum == id.size()){
System.out.println("批量删除成功");
return new ResponseBodyMessage<>(0,"音乐批量删除成功",true);
}else {
System.out.println("批量删除失败");
return new ResponseBodyMessage<>(-1,"音乐批量删除失败",false);
}
}
<select id="findMusic" resultType="com.example.spring_musicserver_1113.model.Music">
select * from music;
</select>
<select id="findMusicByName" resultType="com.example.spring_musicserver_1113.model.Music">
select * from music where title like concat('%',#{musicName},'%');
</select>
<select id="findLoveMusicByUserId" resultType="com.example.spring_musicserver_1113.model.Music">
select m.* from lovemusic lm,music m where m.id = lm.music_id and lm.user_id = #{userId};
</select>
<select id="findLoveMusicByKeyAndUID" resultType="com.example.spring_musicserver_1113.model.Music">
select m.* from lovemusic lm,music m where m.id = lm.music_id and lm.user_id = #{userId}
and title like concat("%",#{musicName},"%");
</select>
控制层:实现LoveMusicController,新增⽅法
java复制代码
@RequestMapping("findLoveMusic")
public ResponseBodyMessage<List<Music>> findLoveMusic(@RequestParam(required = false) String musicName,
HttpServletRequest request){
//1、验证当前是否登录
HttpSession httpSession = request.getSession(false);
if(httpSession == null || httpSession.getAttribute(Constant.USERINFO_SESSION_KEY) == null){
System.out.println("没有登录!");
return new ResponseBodyMessage<>(-1,"请登录后进行查找收藏喜欢的音乐",null);
}
User user = (User) httpSession.getAttribute(Constant.USERINFO_SESSION_KEY);
int userId = user.getId();
System.out.println("userId"+userId);
List<Music> musicList=null;
if(musicName == null){
musicList =loveMusicMapper.findLoveMusicByUserId(userId);
}else {
musicList = loveMusicMapper.findLoveMusicByKeyAndUID(musicName,userId);
}
return new ResponseBodyMessage<>(0,"查询到了所有的歌曲信息",musicList);
}