Java實(shí)戰(zhàn)之制作在線音樂(lè)網(wǎng)站
介紹
環(huán)境配置
Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)
項(xiàng)目技術(shù)
JSP + C3P0+ Servlert + html+ css + JavaScript + JQuery + Ajax + Fileupload等等
效果圖
核心代碼
用戶管理控制層
@Controller @RequestMapping("/user") public class UserController { @Autowired protected WebResponse webResponse; @Resource protected IUserService userService; @Resource protected IMyMusicService MyMusicService; @Autowired UserService userService2; String newName = null; // 登錄功能 @RequestMapping(value = "/loginPage", method = RequestMethod.POST, produces = "application/json;charset=UTF-8") @ResponseBody public WebResponse loginCon(HttpServletRequest request, HttpSession session) { // 取參數(shù)的方法,對(duì)應(yīng)登錄表單中的用戶名name="user_name" String user_name = request.getParameter("user_name"); String user_password = request.getParameter("user_password"); // 調(diào)用mapper層的登錄的方法,從數(shù)據(jù)庫(kù)中匹配用戶名和密碼,并放回用戶名 String tname = userService2.login(user_name, user_password); String user_Id = userService2.getUserById(user_name, user_password); // newUserId = user_Id; //修改密碼用的 int userId = 0; try { // 判斷字符串是否是數(shù)字,并且拋出異常 // boolean NotisNum // =(user_Id.equals(null)||user_Id.equals("")||user_Id.equals("null")); boolean NotisNum = (user_Id.equals("null")); // System.out.println(NotisNum); if (!NotisNum) { userId = Integer.parseInt(user_Id); } } catch (Exception e) { } // session.setAttribute("tname", tname); session.setAttribute("userId", userId); Object data = null; String statusMsg = ""; Integer statusCode = 200; Map<String, String> paramMap = new HashMap<String, String>(); paramMap.put("user_name", user_name); paramMap.put("user_password", user_password); data = paramMap; User user = new User(); user.setUser_id(userId); System.out.println("登錄的id:" + user.getUser_id()); System.out.println("登錄的用戶名:" + session.getAttribute(tname)); System.out.println("前端,用戶名:" + user_name + " 密碼:" + user_password); System.out.println("根據(jù)前端在數(shù)據(jù)庫(kù)中查找到的用戶名:" + tname + " 用戶的id:" + userId); // 用戶名和密碼匹配不成功,則返回的用戶名為空 if (tname == null) { System.out.println("用戶不存在"); System.out.println(); statusMsg = "用戶或密碼錯(cuò)誤!"; statusCode = 201; return webResponse.getWebResponse(statusCode, statusMsg, data); } else { statusCode = 200; webResponse.setStatusCode(statusCode); System.out.println("狀態(tài)碼:" + webResponse.getStatusCode()); System.out.println("登錄成功了"); System.out.println(); return webResponse.getWebResponseUserId(statusCode, statusMsg, data, userId); } } // 更改密碼 更改密碼 更改密碼 @RequestMapping(value = "/resetUserPassword", method = RequestMethod.POST, produces = "application/json;charset=UTF-8") @ResponseBody public WebResponse resetUserPassword(HttpServletRequest request, HttpSession session) { Object data = null; String statusMsg = ""; Integer statusCode = 200; int uId = 0; // 取參數(shù)的方法,對(duì)應(yīng)登錄表單中的用戶名 String user_name = request.getParameter("user_name"); String newUser_password = request.getParameter("newUser_password"); try { uId = (int) this.userService2.resetPassword(user_name, newUser_password); System.out.println("修改密碼返回的id:" + uId); } catch (Exception e) { } return webResponse.getWebResponse(statusCode, statusMsg, data); } // 用戶注冊(cè) @RequestMapping(value = "/addOrEditUser", method = RequestMethod.POST, produces = "application/json;charset=UTF-8") @ResponseBody public WebResponse addOrEditTest(HttpServletRequest request, HttpServletResponse response, HttpSession session, String user_id, @RequestParam(required = false) String user_name, @RequestParam(required = false) String user_password) { Object data = null; String statusMsg = "用戶名已存在,請(qǐng)重新注冊(cè)!"; Integer statusCode = 201; String rearchName = null; try { rearchName = this.userService.rearchUserName(user_name); if (!(rearchName.equals("null"))) { return webResponse.getWebResponse(statusCode, statusMsg, data); } } catch (Exception e) { } System.out.println("判斷用戶是否重復(fù):" + rearchName); if (user_id == null || user_id.length() == 0) { return this.addUser(request, response, session, user_name, user_password); } else { return this.editUser(request, response, session, user_id, user_name, user_password); } } // 添加用戶 @RequestMapping(value = "/addUser", method = RequestMethod.POST, produces = "application/json;charset=UTF-8") @ResponseBody public WebResponse addUser(HttpServletRequest request, HttpServletResponse response, HttpSession session, String user_name, String user_password) { Object data = null; String statusMsg = ""; Integer statusCode = 200; Map<String, String> paramMap = new HashMap<String, String>(); paramMap.put("user_name", user_name); paramMap.put("user_password", user_password); data = paramMap; if (user_name == null || "".equals(user_name.trim()) || user_password == null || "".equals(user_password.trim())) { statusMsg = " 參數(shù)為空錯(cuò)誤!?。。?; statusCode = 201; return webResponse.getWebResponse(statusCode, statusMsg, data); } if (user_name.length() > 255 || user_password.length() > 65535) { statusMsg = " 參數(shù)長(zhǎng)度過(guò)長(zhǎng)錯(cuò)誤?。?!"; statusCode = 201; return webResponse.getWebResponse(statusCode, statusMsg, data); } User user = new User(); boolean isAdd = true; return this.addOrEditUser(request, response, session, data, user, user_name, user_password, isAdd); } @RequestMapping(value = "/editUser", method = RequestMethod.POST, produces = "application/json;charset=UTF-8") @ResponseBody public WebResponse editUser(HttpServletRequest request, HttpServletResponse response, HttpSession session, String user_id, @RequestParam(required = false) String user_name, @RequestParam(required = false) String user_password) { Object data = null; String statusMsg = ""; Integer statusCode = 200; Map<String, String> paramMap = new HashMap<String, String>(); paramMap.put("user_id", user_id); paramMap.put("user_name", user_name); paramMap.put("user_password", user_password); data = paramMap; if (user_id == null || "".equals(user_id.trim())) { statusMsg = "未獲得主鍵參數(shù)錯(cuò)誤!?。?; statusCode = 201; return webResponse.getWebResponse(statusCode, statusMsg, data); } Integer user_idNumeri = user_id.matches("^[0-9]*$") ? Integer.parseInt(user_id) : 0; if (user_idNumeri == 0) { statusMsg = "主鍵不為數(shù)字錯(cuò)誤?。?!"; statusCode = 201; return webResponse.getWebResponse(statusCode, statusMsg, data); } User userVo = this.userService.getById(user_idNumeri); User user = new User(); BeanUtils.copyProperties(userVo, user); // 淺復(fù)制,重要 boolean isAdd = false; return this.addOrEditUser(request, response, session, data, user, user_name, user_password, isAdd); } /* * */ private WebResponse addOrEditUser(HttpServletRequest request, HttpServletResponse response, HttpSession session, Object data, User user, String user_name, String user_password, boolean isAdd) { String statusMsg = ""; Integer statusCode = 200; if (user_name != null && !("".equals(user_name.trim()))) { if (user_name.length() > 255) { statusMsg = " 參數(shù)長(zhǎng)度過(guò)長(zhǎng)錯(cuò)誤,testName"; statusCode = 201; return webResponse.getWebResponse(statusCode, statusMsg, data); } // 重要,建立數(shù)據(jù),以便后期數(shù)據(jù)庫(kù)能調(diào)用數(shù)據(jù) user.setUser_name(user_name); // 建立用戶名 user.setUser_password(user_password); // 建立密碼 } if (user_password != null && !("".equals(user_password.trim()))) { if (user_password.length() > 65535) { statusMsg = " 參數(shù)長(zhǎng)度過(guò)長(zhǎng)錯(cuò)誤,info"; statusCode = 201; return webResponse.getWebResponse(statusCode, statusMsg, data); } } if (isAdd) { // 插入語(yǔ)句,插入數(shù)據(jù)庫(kù),重要 this.userService.insert(user); if (user.getUser_id() > 0) { statusMsg = "成功插入!??!"; } else { statusCode = 202; statusMsg = "insert false"; } return webResponse.getWebResponse(statusCode, statusMsg, data); } int num = this.userService.update(user); if (num > 0) { statusMsg = "成功修改!?。?; } else { statusCode = 202; statusMsg = "update false"; } return webResponse.getWebResponse(statusCode, statusMsg, data); } @RequestMapping(value = "/getUserById", produces = "application/json;charset=UTF-8") @ResponseBody public WebResponse getUserById(String user_id) { Object data = user_id; Integer statusCode = 200; String statusMsg = ""; if (user_id == null || user_id.length() == 0 || user_id.length() > 11) { statusMsg = "參數(shù)為空或參數(shù)過(guò)長(zhǎng)錯(cuò)誤?。?!"; statusCode = 201; return webResponse.getWebResponse(statusCode, statusMsg, data); } Integer user_idNumNumeri = user_id.matches("^[0-9]*$") ? Integer.parseInt(user_id) : 0; if (user_idNumNumeri == 0) { statusMsg = "參數(shù)數(shù)字型錯(cuò)誤!??!"; statusCode = 201; return webResponse.getWebResponse(statusCode, statusMsg, data); } User userVo = this.userService.getById(user_idNumNumeri); if (userVo != null && userVo.getUser_id() > 0) { data = userVo; statusMsg = "獲取單條數(shù)據(jù)成功?。?!"; } else { statusCode = 202; statusMsg = "no record!!!"; } return webResponse.getWebResponse(statusCode, statusMsg, data); } @RequestMapping(value = "/getOneUser", method = RequestMethod.POST, produces = "application/json;charset=UTF-8") @ResponseBody public WebResponse getOneTest(@RequestParam(defaultValue = "正常", required = false) String tbStatus) { LinkedHashMap<String, String> condition = new LinkedHashMap<String, String>(); condition.put("tb_status='" + tbStatus + "'", ""); User userVo = this.userService.getOne(condition); Object data = null; String statusMsg = ""; if (userVo != null && userVo.getUser_id() > 0) { data = userVo; statusMsg = "根據(jù)條件獲取單條數(shù)據(jù)成功?。?!"; } else { statusMsg = "no record!!!"; } return webResponse.getWebResponse(statusMsg, data); } @RequestMapping(value = "/getUserList", method = RequestMethod.POST, produces = "application/json;charset=UTF-8") @ResponseBody public WebResponse getTestList(HttpServletRequest request, HttpServletResponse response, HttpSession session, @RequestParam(defaultValue = "1", required = false) Integer pageNo, @RequestParam(defaultValue = "10", required = false) Integer pageSize, @RequestParam(defaultValue = "正常", required = false) String tbStatus, @RequestParam(required = false) String keyword, @RequestParam(defaultValue = "test_id", required = false) String order, @RequestParam(defaultValue = "desc", required = false) String desc) { Object data = null; String statusMsg = ""; int statusCode = 200; LinkedHashMap<String, String> condition = new LinkedHashMap<String, String>(); /* * if (tbStatus != null && tbStatus.length() > 0) { condition.put("tb_status='" * + tbStatus + "'", "and"); } */ if (keyword != null && keyword.length() > 0) { StringBuffer buf = new StringBuffer(); buf.append("("); buf.append("test_name like '%").append(keyword).append("%'"); buf.append(" or "); buf.append("info like '%").append(keyword).append("%'"); buf.append(" or "); buf.append("other like '%").append(keyword).append("%'"); buf.append(")"); condition.put(buf.toString(), "and"); } String field = null; if (condition.size() > 0) { condition.put(condition.entrySet().iterator().next().getKey(), ""); } int count = this.userService.getCount(condition, field); if (order != null && order.length() > 0 & "desc".equals(desc)) { order = order + " desc"; } List<User> list = this.userService.getList(condition, pageNo, pageSize, order, field); Map<Object, Object> map = new HashMap<Object, Object>(); map.put("total", count); int size = list.size(); if (size > 0) { List<User> listFont = new ArrayList<User>(); User vo; User voFont = new User(); for (int i = 0; i < size; i++) { vo = list.get(i); BeanUtils.copyProperties(vo, voFont); listFont.add(voFont); voFont = new User(); } map.put("list", listFont); data = map; statusMsg = "根據(jù)條件獲取分頁(yè)數(shù)據(jù)成功?。?!"; } else { map.put("list", list); data = map; statusCode = 202; statusMsg = "no record!!!"; return webResponse.getWebResponse(statusCode, statusMsg, data); } return webResponse.getWebResponse(statusCode, statusMsg, data); } @RequestMapping(value = "/getAdminUserList", method = RequestMethod.POST, produces = "application/json;charset=UTF-8") @ResponseBody public String getAdminTestList(HttpServletRequest request, HttpServletResponse response, HttpSession session, @RequestParam(defaultValue = "1", required = false) Integer pageNo, @RequestParam(defaultValue = "10", required = false) Integer pageSize, @RequestParam(defaultValue = "正常", required = false) String tbStatus, @RequestParam(required = false) String keyword, @RequestParam(defaultValue = "test_id", required = false) String order, @RequestParam(defaultValue = "desc", required = false) String desc) { Object data = null; String statusMsg = ""; int statusCode = 200; LinkedHashMap<String, String> condition = new LinkedHashMap<String, String>(); if (tbStatus != null && tbStatus.length() > 0) { condition.put("tb_status='" + tbStatus + "'", "and"); } if (keyword != null && keyword.length() > 0) { StringBuffer buf = new StringBuffer(); buf.append("("); buf.append("test_name like '%").append(keyword).append("%'"); buf.append(" or "); buf.append("info like '%").append(keyword).append("%'"); buf.append(" or "); buf.append("other like '%").append(keyword).append("%'"); buf.append(")"); condition.put(buf.toString(), "and"); } String field = null; if (condition.size() > 0) { condition.put(condition.entrySet().iterator().next().getKey(), ""); } int count = this.userService.getCount(condition, field); if (order != null && order.length() > 0 & "desc".equals(desc)) { order = order + " desc"; } List<User> list = this.userService.getList(condition, pageNo, pageSize, order, field); Map<Object, Object> map = new HashMap<Object, Object>(); map.put("total", count); int size = list.size(); if (size > 0) { map.put("list", list); data = map; statusMsg = "根據(jù)條件獲取分頁(yè)數(shù)據(jù)成功!??!"; } else { map.put("list", list); data = map; statusCode = 202; statusMsg = "no record!!!"; } return JSON.toJSONString(data); } @RequestMapping(value = "/delUser", method = RequestMethod.POST, produces = "application/json;charset=UTF-8") @ResponseBody public WebResponse delTest(int id) { int num = this.userService.delBySign(id); Object data = null; String statusMsg = ""; if (num > 0) { statusMsg = "成功刪除?。?!"; } else { statusMsg = "no record!!!"; } return webResponse.getWebResponse(statusMsg, data); } }
我的音樂(lè)歌單管理
@Controller @RequestMapping("/myMusic") public class MyMusicController { @Autowired protected WebResponse webResponse; @Resource protected IMyMusicService myMusicService; // @Autowired // MyMusicService myMusicService2; // 歌曲收藏 @RequestMapping(value = "/addMusicCollect", method = RequestMethod.POST, produces = "application/json;charset=UTF-8") @ResponseBody public WebResponse addMusicCollect(HttpServletRequest request, HttpServletResponse response, HttpSession session, @RequestParam(required = false) String user_name) { WebResponse webResponse = new WebResponse(); MyMusic myMusic = new MyMusic(); System.out.println("接收到的用戶名:" + user_name); Integer statusCode = 200; // 數(shù)據(jù)庫(kù)插入語(yǔ)句,對(duì)應(yīng)xml文件的insert this.myMusicService.insert(myMusic); webResponse.setStatusCode(statusCode); return webResponse; } // 從數(shù)據(jù)庫(kù)中獲取歌曲數(shù)據(jù),在我的音樂(lè)中顯示 @RequestMapping(value = "/getMyMusicList", method = RequestMethod.POST, produces = "application/json;charset=UTF-8") @ResponseBody public WebResponse getMyMusicList(HttpServletRequest request, HttpServletResponse response, HttpSession session, @RequestParam(defaultValue = "1", required = false) Integer pageNo, @RequestParam(defaultValue = "10", required = false) Integer pageSize, @RequestParam(defaultValue = "正常", required = false) String tbStatus, @RequestParam(required = false) String keyword, @RequestParam(defaultValue = "ml_id", required = false) String order, @RequestParam(defaultValue = "desc", required = false) String desc, @RequestParam(required = false) String user_name, @RequestParam(required = false) String user_password ) { // System.out.println("我的音樂(lè)顯示列表前收藏的歌曲id:" + song_id); String user_Id = null; try { user_Id = myMusicService.getUserById(user_name, user_password); } catch (Exception e) { } int userId = 0; try { // 判斷字符串是否是數(shù)字,并且拋出異常 boolean NotisNum = (user_Id.equals("null")); // System.out.println(NotisNum); if (!NotisNum) { userId = Integer.parseInt(user_Id); } } catch (Exception e) { } System.out.println("我的音樂(lè)顯示列表前用戶id:" + userId); Object data = null; String statusMsg = ""; int statusCode = 200; LinkedHashMap<String, String> condition = new LinkedHashMap<String, String>(); /* * if (tbStatus != null && tbStatus.length() > 0) { condition.put("tb_status='" * + tbStatus + "'", "and"); } */ if (keyword != null && keyword.length() > 0) { StringBuffer buf = new StringBuffer(); buf.append("("); buf.append("test_name like '%").append(keyword).append("%'"); buf.append(" or "); buf.append("info like '%").append(keyword).append("%'"); buf.append(" or "); buf.append("other like '%").append(keyword).append("%'"); buf.append(")"); condition.put(buf.toString(), "and"); } String field = null; if (condition.size() > 0) { condition.put(condition.entrySet().iterator().next().getKey(), ""); } // int count = this.myMusicService.getCount(condition, field); if (order != null && order.length() > 0 & "desc".equals(desc)) { order = order + " desc"; } // List<MyMusic> list = this.myMusicService.getList(condition, pageNo, pageSize, // order, field); try { List<MyMusic> list = this.myMusicService.getMyMusicList(userId); Map<Object, Object> map = new HashMap<Object, Object>(); // map.put("total", count); int size = list.size(); if (size > 0) { List<MyMusic> listFont = new ArrayList<MyMusic>(); MyMusic vo; MyMusic voFont = new MyMusic(); for (int i = 0; i < size; i++) { vo = list.get(i); // 通過(guò)java反射將類中當(dāng)前屬性字段對(duì)應(yīng)的內(nèi)容復(fù)制到另外一個(gè)類中 BeanUtils.copyProperties(vo, voFont); listFont.add(voFont); voFont = new MyMusic(); } map.put("list", listFont); data = map; statusMsg = "根據(jù)條件獲取分頁(yè)數(shù)據(jù)成功!?。?; } else { map.put("list", list); data = map; statusCode = 202; statusMsg = "no record!!!"; return webResponse.getWebResponse(statusCode, statusMsg, data); } }catch (Exception e){ } return webResponse.getWebResponse(statusCode, statusMsg, data); } // 刪除音樂(lè) @RequestMapping(value = "/deleteMyMusic", method = RequestMethod.POST, produces = "application/json;charset=UTF-8") @ResponseBody public WebResponse deleteMyMusic(HttpServletRequest request, HttpServletResponse response, HttpSession session, @RequestParam(required = false) Integer user_id, @RequestParam(required = false) Integer song_id) { WebResponse webResponse = new WebResponse(); MyMusic myMusic = new MyMusic(); System.out.println("刪除音樂(lè)前的用戶名id:" + user_id); Object data = null; String statusMsg = ""; int statusCode = 201; int del = 0; if (user_id == null){ del = this.myMusicService.deleteMyMusic(song_id, 0); }else { del = this.myMusicService.deleteMyMusic(song_id, user_id); } if (del > 0) { statusCode = 200; } return webResponse.getWebResponse(statusCode, statusMsg, data); } }
音樂(lè)鏈接管理
@Controller @RequestMapping("/musicLink") public class MusicLinkController { @Autowired protected WebResponse webResponse; @Resource protected IMusicLinkService musicLinkService; @Resource protected MusicLinkService musicLinkService2; /** * //常用注解快速解釋: * @Controller :用于標(biāo)記在一個(gè)類上,使用它標(biāo)記的類就是一個(gè)SpringMVC Controller 對(duì)象。 * 分發(fā)處理器將會(huì)掃描使用了該注解的類的方法,并檢測(cè)該方法是否使用了@RequestMapping 注解。@Controller * 只是定義了一個(gè)控制器類,而使用@RequestMapping 注解的方法才是真正處理請(qǐng)求的處理器。 * * @RequestMapping :是一個(gè)用來(lái)處理請(qǐng)求地址映射的注解,可用于類或方法上。 * 用于類上,表示類中的所有響應(yīng)請(qǐng)求的方法都是以該地址作為父路徑; * 用于方法上,表示在類的父路徑下追加方法上注解中的地址將會(huì)訪問(wèn)到該方法 * * @Autowired:@Autowired 注釋,它可以對(duì)類成員變量、方法及構(gòu)造函數(shù)進(jìn)行標(biāo)注,完成自動(dòng)裝配的工作。 通過(guò) @Autowired的使用來(lái)消除 set ,get方法。 * * * @Resource:@Autowired與@Resource都可以用來(lái)裝配bean. 都可以寫(xiě)在字段上,或?qū)懺趕etter方法上。 * * * @Responsebody 注解表示該方法的返回的結(jié)果直接寫(xiě)入 HTTP 響應(yīng)正文(ResponseBody)中, * 一般在異步獲取數(shù)據(jù)時(shí)使用,通常是在使用 @RequestMapping 后,返回值通常解析為跳轉(zhuǎn)路徑, * 加上 @Responsebody 后返回結(jié)果不會(huì)被解析為跳轉(zhuǎn)路徑,而是直接寫(xiě)入HTTP 響應(yīng)正文中。 * 作用: 該注解用于將Controller的方法返回的對(duì)象,通過(guò)適當(dāng)?shù)腍ttpMessageConverter轉(zhuǎn)換為指定格式后,寫(xiě)入到Response對(duì)象的body數(shù)據(jù)區(qū)。 * * * * * @RequestParam(value="aa" required=false) * 1.可以對(duì)傳入?yún)?shù)指定參數(shù)名 * * // 下面的對(duì)傳入?yún)?shù)指定為aa,如果前端不傳aa參數(shù)名,會(huì)報(bào)錯(cuò) * @RequestParam(value="aa") String inputStr * * 2、可以通過(guò)required=false或者true來(lái)要求@RequestParam配置的前端參數(shù)是否一定要傳 * * 3、如果@requestParam注解的參數(shù)是int類型,并且required=false,此時(shí)如果不傳參數(shù)的話,會(huì)報(bào)錯(cuò)。原因是,required=false時(shí),不傳參數(shù)的話, * 會(huì)給參數(shù)賦值null,這樣就會(huì)把null賦值給了int,因此會(huì)報(bào)錯(cuò)。 * * * */ // 從數(shù)據(jù)庫(kù)中獲取歌曲數(shù)據(jù),在榜單中顯示 @RequestMapping(value = "/getMusicLinkList", method = RequestMethod.POST, produces = "application/json;charset=UTF-8") @ResponseBody public WebResponse getMusicLinkList(HttpServletRequest request, HttpServletResponse response, HttpSession session, @RequestParam(defaultValue = "1", required = false) Integer pageNo, @RequestParam(defaultValue = "30", required = false) Integer pageSize, @RequestParam(defaultValue = "正常", required = false) String tbStatus, @RequestParam(required = false) String keyword, @RequestParam(defaultValue = "ml_id", required = false) String order, @RequestParam(defaultValue = "desc", required = false) String desc) { Object data = null; String statusMsg = ""; int statusCode = 200; LinkedHashMap<String, String> condition = new LinkedHashMap<String, String>(); /* * if (tbStatus != null && tbStatus.length() > 0) { condition.put("tb_status='" * + tbStatus + "'", "and"); } */ if (keyword != null && keyword.length() > 0) { StringBuffer buf = new StringBuffer(); buf.append("("); buf.append("test_name like '%").append(keyword).append("%'"); buf.append(" or "); buf.append("info like '%").append(keyword).append("%'"); buf.append(" or "); buf.append("other like '%").append(keyword).append("%'"); buf.append(")"); condition.put(buf.toString(), "and"); } String field = null; if (condition.size() > 0) { condition.put(condition.entrySet().iterator().next().getKey(), ""); } int count = this.musicLinkService.getCount(condition, field); if (order != null && order.length() > 0 & "desc".equals(desc)) { order = order + " desc"; } // 從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù),并把對(duì)象的結(jié)果集存到list列表中 List<MusicLink> list = this.musicLinkService.getList(condition, pageNo, pageSize, order, field); Map<Object, Object> map = new HashMap<Object, Object>(); map.put("total", count); // 如果數(shù)據(jù)庫(kù)有15條音樂(lè),則list中有15個(gè)對(duì)象,則size的大小為15 int size = list.size(); if (size > 0) { List<MusicLink> listFont = new ArrayList<MusicLink>(); MusicLink vo; MusicLink voFont = new MusicLink(); // 循環(huán)將獲取到的對(duì)象及結(jié)構(gòu)屬性克隆到一個(gè)新的voFont對(duì)象中,并保存到動(dòng)態(tài)數(shù)組中 for (int i = 0; i < size; i++) { vo = list.get(i); // 通過(guò)java反射將類中當(dāng)前屬性字段對(duì)應(yīng)的內(nèi)容復(fù)制到另外一個(gè)類中 BeanUtils.copyProperties(vo, voFont); listFont.add(voFont); voFont = new MusicLink(); } map.put("list", listFont); // data是一個(gè)map對(duì)象 data = map; statusMsg = "根據(jù)條件獲取分頁(yè)數(shù)據(jù)成功!??!"; } else { map.put("list", list); data = map; statusCode = 202; statusMsg = "no record!!!"; return webResponse.getWebResponse(statusCode, statusMsg, data); } return webResponse.getWebResponse(statusCode, statusMsg, data); } // 歌曲搜索功能 @RequestMapping(value = "/getSongRearch", method = RequestMethod.POST, produces = "application/json;charset=UTF-8") @ResponseBody public WebResponse getSongRearch(HttpServletRequest request, HttpServletResponse response, HttpSession session, @RequestParam(required = false) String songName) { Object data = null; String statusMsg = ""; int statusCode = 200; // 調(diào)用Mapper層的songRearch方法,進(jìn)行數(shù)據(jù)庫(kù)的操作 List<MusicLink> list = this.musicLinkService2.songRearch(songName); int count = list.size(); System.out.println(); System.out.println("搜索到的歌曲數(shù):" + count); System.out.println("結(jié)束"); Map<Object, Object> map = new HashMap<Object, Object>(); map.put("total", count); int size = list.size(); if (size > 0) { List<MusicLink> listFont = new ArrayList<MusicLink>(); MusicLink vo; MusicLink voFont = new MusicLink(); for (int i = 0; i < size; i++) { vo = list.get(i); BeanUtils.copyProperties(vo, voFont); listFont.add(voFont); voFont = new MusicLink(); } map.put("list", listFont); data = map; // for (int i = 0; i < map.size(); i++) { // System.out.println(map.get(listFont).toString()); // } // statusMsg = "根據(jù)條件獲取分頁(yè)數(shù)據(jù)成功?。?!"; } else { map.put("list", list); data = map; statusCode = 202; statusMsg = "no record!!!"; return webResponse.getWebResponse(statusCode, statusMsg, data); } return webResponse.getWebResponse(statusCode, statusMsg, data); } // 歌曲收藏 @RequestMapping(value = "/addMusicCollect", method = RequestMethod.POST, produces = "application/json;charset=UTF-8") @ResponseBody public WebResponse addMusicCollect(HttpServletRequest request, HttpServletResponse response, HttpSession session, @RequestParam(required = false) int song_id, @RequestParam(required = false) String user_name, @RequestParam(required = false) String user_password, @RequestParam(required = false) String songName) { WebResponse webResponse = new WebResponse(); MusicLink musicLink = new MusicLink(); User user = new User(); System.out.println("歌曲id:" + song_id + " 用戶名:" + user_name + " 戶用密碼:" + user_password); Object data = null; String statusMsg = ""; int statusCode = 200; String user_Id = null; try { user_Id = musicLinkService2.getUserId(user_name, user_password); } catch (Exception e) { } int userId = 0; try { // 判斷字符串是否是數(shù)字,并且拋出異常 boolean NotisNum = (user_Id.equals("null")); // System.out.println(NotisNum); if (!NotisNum) { userId = Integer.parseInt(user_Id); } } catch (Exception e) { } System.out.println("歌曲名:" + songName); String jSong = this.musicLinkService.judgeSong(songName, userId); int my_Id = 0; try { // 判斷字符串是否是數(shù)字,并且拋出異常 // boolean NotisNum // =(user_Id.equals(null)||user_Id.equals("")||user_Id.equals("null")); boolean NotisNum = (jSong.equals("null")); if (!NotisNum) { my_Id = Integer.parseInt(jSong); } } catch (Exception e) { } if (my_Id > 0) { statusCode = 201; statusMsg = "已收藏,請(qǐng)不要重復(fù)收藏!"; } else { this.musicLinkService.insertSongRearch(song_id, userId); } System.out.println("收藏歌曲的用戶id:" + userId); return webResponse.getWebResponse(statusCode, statusMsg, data); } }
到此這篇關(guān)于Java實(shí)戰(zhàn)之制作在線音樂(lè)網(wǎng)站的文章就介紹到這了,更多相關(guān)Java在線音樂(lè)網(wǎng)站內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之在線高中考試系統(tǒng)的實(shí)現(xiàn)
- Java實(shí)戰(zhàn)之實(shí)現(xiàn)在線小說(shuō)閱讀系統(tǒng)
- Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之在線蛋糕銷售商城的實(shí)現(xiàn)
- Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)項(xiàng)目之在線服裝銷售商城系統(tǒng)的實(shí)現(xiàn)流程
- Java 實(shí)戰(zhàn)項(xiàng)目之在線點(diǎn)餐系統(tǒng)的實(shí)現(xiàn)流程
相關(guān)文章
詳細(xì)介紹idea如何設(shè)置類頭注釋和方法注釋(圖文)
本篇文章主要介紹了idea如何設(shè)置類頭注釋和方法注釋(圖文),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12SpringMvc+POI處理excel表數(shù)據(jù)導(dǎo)入
這篇文章主要為大家詳細(xì)介紹了SpringMvc+POI處理excel表數(shù)據(jù)導(dǎo)入,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06java8 stream自定義分組求和并排序的實(shí)現(xiàn)
這篇文章主要介紹了java8 stream自定義分組求和并排序的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01Spring學(xué)習(xí)JdbcTemplate數(shù)據(jù)庫(kù)事務(wù)參數(shù)
這篇文章主要為大家介紹了Spring學(xué)習(xí)JdbcTemplate數(shù)據(jù)庫(kù)事務(wù)參數(shù)使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Spring Boot項(xiàng)目中定制攔截器的方法詳解
這篇文章主要介紹了Spring Boot項(xiàng)目中定制攔截器的方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10myBatis組件教程之緩存的實(shí)現(xiàn)與使用
這篇文章主要給大家介紹了關(guān)于myBatis組件教程之緩存的實(shí)現(xiàn)與使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11