springboot-ssm框架前后端访问网易云音乐,后端部署项目原理案例,完成数据库浏览器访问接收数据
创建项目
创建并 配置application.yml文件
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/music?serverTimezone=UTC username: root password: 123456
查找所有的歌单
Dao层
ShowDaoSongSheet
@Mapper
public interface ShowDaoSongSheet {
//查找歌单
@Select("select * from song_sheet")
public List<SongSheet> findAll();
}
entity
SongSheet
接收查找到数据再放到List<SongSheet >中
@Data
public class SongSheet {
private Integer id;
private String cover_url;
private String sheet_type;
private String desc;
}
util,封装查询的结果
ResultMusic
@Data
//封装结果
public class ResultMusic<T> {
private int code;
private String msg;
private T data;
}
ShowServiceSongSheet
public interface ShowServiceSongSheet { //查找歌单 public ResultMusic<List<SongSheet>> findAll(); }
ShowSongSheetImp
service 判断是否有数据,再做出反应
@Service public class ShowSongSheetImp implements ShowServiceSongSheet { //注入dao @Autowired private ShowDaoSongSheet dao; @Override public ResultMusic<List<SongSheet>> findAll() { List<SongSheet> all = dao.findAll(); ResultMusic<List<SongSheet>> result = new ResultMusic<List<SongSheet>>(); if(all!=null){ result.setCode(1); result.setMsg("查找歌单成功"); result.setData(all); return result; } result.setCode(2); result.setMsg("查找歌单失败"); return result; } }
ShowControllerSongSheet
@RestController public class ShowControllerSongSheet { @Autowired private ShowServiceSongSheet service; @RequestMapping("/song_sheet") public ResultMusic<List<SongSheet>> showAll(){ return service.findAll(); } }
查找歌单里的所有歌曲
SongsController
@RestController public class SongsController { @Autowired private SongsService songsService; @RequestMapping("/songs") public ResultMusic<List<Songs>> showSongs(String sheet_type_id){ return songsService.findById(sheet_type_id); } }
entity
Songs
@Data public class Songs { private Integer id; private String sheet_type_id; private String name; private String song_url; private String img_url; private String author; private String author_desc; private String song_tag; }
SongsService
public interface SongsService { //根据歌单id查找歌曲 public ResultMusic<List<Songs>> findById(String sheet_type_id); }
SongsServiceImp
@Service public class SongsServiceImp implements SongsService { @Autowired private SongsDao dao; @Override public ResultMusic<List<Songs>> findById(String sheet_type_id) { List<Songs> songs = dao.findById(sheet_type_id); ResultMusic<List<Songs>> result = new ResultMusic<>(); if(songs!=null){ result.setCode(1); result.setMsg("歌曲查找成功"); result.setData(songs); return result; } result.setCode(2); result.setMsg("歌曲查找失败"); return result; } }
接收数据并判断
SongsDao
@Mapper public interface SongsDao { @Select("select * from songs where sheet_type_id = #{sheet_type_id}") public List<Songs> findById(String sheet_type_id); }
SongsDao
查找歌单里的所有歌曲,返回的是个集合List,到service
@Mapper public interface SongsDao { @Select("select * from songs where sheet_type_id = #{sheet_type_id}") public List<Songs> findById(String sheet_type_id); }
CorsConfig
package com.lylg.music.util;//package com.example.demo.util; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("*") .allowCredentials(true) .allowedMethods("GET", "POST", "DELETE", "PUT") .maxAge(3600); } }
SimpleCORSFilter
package com.lylg.music.util; import org.springframework.stereotype.Component; import javax.servlet.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @Component public class SimpleCORSFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) res; response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, HEAD"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "access-control-allow-origin, authority, content-type, version-info, X-Requested-With"); chain.doFilter(req, res); } public void init(FilterConfig filterConfig) {} public void destroy() {} }
最后放上我的项目结构