Java项目:精美风在线音乐网站(java+JDBC+C3P0+servlet+mysql+JSP)
源码获取:博客首页 "资源" 里下载!
1.运行环境
环境配置:
Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)
项目技术:
JSP + C3P0+ Servlert + html+ css + JavaScript + JQuery + Ajax + Fileupload等等
用户管理控制层:
@Controller
@RequestMapping("/user")
public class UserController {@Autowiredprotected WebResponse webResponse;@Resourceprotected IUserService userService;@Resourceprotected IMyMusicService MyMusicService;@AutowiredUserService userService2;String newName = null;// 登录功能@RequestMapping(value = "/loginPage", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")@ResponseBodypublic WebResponse loginCon(HttpServletRequest request, HttpSession session) {// 取参数的方法,对应登录表单中的用户名name="user_name"String user_name = request.getParameter("user_name");String user_password = request.getParameter("user_password");// 调用mapper层的登录的方法,从数据库中匹配用户名和密码,并放回用户名String tname = userService2.login(user_name, user_password);String user_Id = userService2.getUserById(user_name, user_password);// newUserId = user_Id; //修改密码用的int userId = 0;try {// 判断字符串是否是数字,并且抛出异常// 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("根据前端在数据库中查找到的用户名:" + tname + " 用户的id:" + userId);// 用户名和密码匹配不成功,则返回的用户名为空if (tname == null) {System.out.println("用户不存在");System.out.println();statusMsg = "用户或密码错误!";statusCode = 201;return webResponse.getWebResponse(statusCode, statusMsg, data);} else {statusCode = 200;webResponse.setStatusCode(statusCode);System.out.println("状态码:" + 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")@ResponseBodypublic WebResponse resetUserPassword(HttpServletRequest request, HttpSession session) {Object data = null;String statusMsg = "";Integer statusCode = 200;int uId = 0;// 取参数的方法,对应登录表单中的用户名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);}// 用户注册@RequestMapping(value = "/addOrEditUser", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")@ResponseBodypublic 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 = "用户名已存在,请重新注册!";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("判断用户是否重复:" + 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")@ResponseBodypublic 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 = " 参数为空错误!!!!";statusCode = 201;return webResponse.getWebResponse(statusCode, statusMsg, data);}if (user_name.length() > 255 || user_password.length() > 65535) {statusMsg = " 参数长度过长错误!!!";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")@ResponseBodypublic 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 = "未获得主键参数错误!!!";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 = "主键不为数字错误!!!";statusCode = 201;return webResponse.getWebResponse(statusCode, statusMsg, data);}User userVo = this.userService.getById(user_idNumeri);User user = new User();BeanUtils.copyProperties(userVo, user); // 浅复制,重要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 = " 参数长度过长错误,testName";statusCode = 201;return webResponse.getWebResponse(statusCode, statusMsg, data);}// 重要,建立数据,以便后期数据库能调用数据user.setUser_name(user_name); // 建立用户名user.setUser_password(user_password); // 建立密码}if (user_password != null && !("".equals(user_password.trim()))) {if (user_password.length() > 65535) {statusMsg = " 参数长度过长错误,info";statusCode = 201;return webResponse.getWebResponse(statusCode, statusMsg, data);}}if (isAdd) {// 插入语句,插入数据库,重要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")@ResponseBodypublic 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 = "参数为空或参数过长错误!!!";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 = "参数数字型错误!!!";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 = "获取单条数据成功!!!";} else {statusCode = 202;statusMsg = "no record!!!";}return webResponse.getWebResponse(statusCode, statusMsg, data);}@RequestMapping(value = "/getOneUser", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")@ResponseBodypublic 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 = "根据条件获取单条数据成功!!!";} else {statusMsg = "no record!!!";}return webResponse.getWebResponse(statusMsg, data);}@RequestMapping(value = "/getUserList", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")@ResponseBodypublic 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 = "根据条件获取分页数据成功!!!";} 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")@ResponseBodypublic 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 = "根据条件获取分页数据成功!!!";} 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")@ResponseBodypublic 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);}}
我的音乐歌单管理:
@Controller
@RequestMapping("/myMusic")
public class MyMusicController {@Autowiredprotected WebResponse webResponse;@Resourceprotected IMyMusicService myMusicService;// @Autowired
// MyMusicService myMusicService2;// 歌曲收藏@RequestMapping(value = "/addMusicCollect", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")@ResponseBodypublic 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;// 数据库插入语句,对应xml文件的insertthis.myMusicService.insert(myMusic);webResponse.setStatusCode(statusCode);return webResponse;}// 从数据库中获取歌曲数据,在我的音乐中显示@RequestMapping(value = "/getMyMusicList", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")@ResponseBodypublic 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("我的音乐显示列表前收藏的歌曲id:" + song_id);String user_Id = null;try {user_Id = myMusicService.getUserById(user_name, user_password);} catch (Exception e) {}int userId = 0;try {// 判断字符串是否是数字,并且抛出异常boolean NotisNum = (user_Id.equals("null"));// System.out.println(NotisNum);if (!NotisNum) {userId = Integer.parseInt(user_Id);}} catch (Exception e) {}System.out.println("我的音乐显示列表前用户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);// 通过java反射将类中当前属性字段对应的内容复制到另外一个类中BeanUtils.copyProperties(vo, voFont);listFont.add(voFont);voFont = new MyMusic();}map.put("list", listFont);data = map;statusMsg = "根据条件获取分页数据成功!!!";} 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);}// 删除音乐@RequestMapping(value = "/deleteMyMusic", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")@ResponseBodypublic 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("删除音乐前的用户名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);}}
音乐链接管理:
@Controller
@RequestMapping("/musicLink")
public class MusicLinkController {@Autowiredprotected WebResponse webResponse;@Resourceprotected IMusicLinkService musicLinkService;@Resourceprotected MusicLinkService musicLinkService2;/*** //常用注解快速解释:* @Controller :用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。* 分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。@Controller * 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器。* * @RequestMapping :是一个用来处理请求地址映射的注解,可用于类或方法上。* 用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径;* 用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法* * @Autowired:@Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。* * * @Resource:@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。* * * @Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,* 一般在异步获取数据时使用,通常是在使用 @RequestMapping 后,返回值通常解析为跳转路径,* 加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。 * 作用: 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。* *** * @RequestParam(value="aa" required=false)* 1.可以对传入参数指定参数名* * // 下面的对传入参数指定为aa,如果前端不传aa参数名,会报错 * @RequestParam(value="aa") String inputStr * * 2、可以通过required=false或者true来要求@RequestParam配置的前端参数是否一定要传 * * 3、如果@requestParam注解的参数是int类型,并且required=false,此时如果不传参数的话,会报错。原因是,required=false时,不传参数的话,* 会给参数赋值null,这样就会把null赋值给了int,因此会报错。* ** */ // 从数据库中获取歌曲数据,在榜单中显示@RequestMapping(value = "/getMusicLinkList", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")@ResponseBodypublic 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";}// 从数据库中获取数据,并把对象的结果集存到list列表中List<MusicLink> list = this.musicLinkService.getList(condition, pageNo, pageSize, order, field);Map<Object, Object> map = new HashMap<Object, Object>();map.put("total", count);// 如果数据库有15条音乐,则list中有15个对象,则size的大小为15int size = list.size();if (size > 0) {List<MusicLink> listFont = new ArrayList<MusicLink>();MusicLink vo;MusicLink voFont = new MusicLink();// 循环将获取到的对象及结构属性克隆到一个新的voFont对象中,并保存到动态数组中for (int i = 0; i < size; i++) {vo = list.get(i);// 通过java反射将类中当前属性字段对应的内容复制到另外一个类中BeanUtils.copyProperties(vo, voFont);listFont.add(voFont);voFont = new MusicLink();}map.put("list", listFont);// data是一个map对象data = map;statusMsg = "根据条件获取分页数据成功!!!";} 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")@ResponseBodypublic WebResponse getSongRearch(HttpServletRequest request, HttpServletResponse response, HttpSession session,@RequestParam(required = false) String songName) {Object data = null;String statusMsg = "";int statusCode = 200;// 调用Mapper层的songRearch方法,进行数据库的操作List<MusicLink> list = this.musicLinkService2.songRearch(songName);int count = list.size();System.out.println();System.out.println("搜索到的歌曲数:" + count);System.out.println("结束");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 = "根据条件获取分页数据成功!!!";} 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")@ResponseBodypublic 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 {// 判断字符串是否是数字,并且抛出异常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 {// 判断字符串是否是数字,并且抛出异常// 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 = "已收藏,请不要重复收藏!";} else {this.musicLinkService.insertSongRearch(song_id, userId);}System.out.println("收藏歌曲的用户id:" + userId);return webResponse.getWebResponse(statusCode, statusMsg, data);}}
源码获取:博客首页 "资源" 里下载!
相关文章:

Solution 24: 链表翻转
程序 public class ListReverse {public ListNode reverseList(ListNode head) {if (head null) {return head;}ListNode pre head;ListNode cur pre.next;pre.next null;while (cur ! null) {ListNode next cur.next;cur.next pre;pre cur;cur next;}return pre;}pu…

Android开发实践:以“专业”的态度处理多线程
刚开始学一门编程语言的时候,我总是会有一种困惑,怎样让自己的代码看起来更“专业”?很多时候,我们可以照着教材实现一些基本的功能,比如用Socket发送/接收几个字符,写一个线程完成某个异步任务,…

js 正则匹配URL,网址,带端口,带query的
function isURL(url) {const strRegex ^((https|http|ftp)://)?//(https或http或ftp):// 可有可无 (([\\w_!~*\()\\.&$%-]: )?[\\w_!~*\()\\.&$%-])? //ftp的user 可有可无 (([0-9]{1,3}\\.){3}[0-9]{1,3} // IP形式的URL- 3位数字.3位数字.3位数字.3位数字 | // 允…

接入层的流程和非接入层
所谓接入层的流程和非接入层的流程,实际是从协议栈的角度出发的。在协议栈中,RRC和RANAP层及其以下的协议层称为接入层,它们之上的MM、SM、CC、SMS 等称为非接入层。简单地说,接入层的流程,也就是指无线接入层的设备RN…

Java项目:精美网上音乐平台(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)
源码获取:博客首页 "资源" 里下载! 一、项目简述 本系统功能包括: 音乐播放 用户登录注册 用户信息编辑、头像修改 歌曲、歌单搜索 歌单打分 歌单、歌曲评论 歌单列表、歌手列表分页显示 歌词同步显不 音乐收藏、下载、拖动控制、…

UICollectionView的使用方法
1、遵守协议 <UICollectionViewDataSource,UICollectionViewDelegateFlowLayout> 2、创建 UICollectionViewFlowLayout * layout [[UICollectionViewFlowLayout alloc]init]; layout.minimumInteritemSpacing 10; //最小item之间的间距 layout.minimumLineSpaci…

python学习--服务期间通讯和mysql数据库操作
服务端import socket import json ssocket.socket(socket.AF_INET,socket.SOCK_STREAM,0) host port1234 s.bind((host,port)) s.listen(3) while True:client,ipaddrs.accept()print "Got a connect from %s" %str(ipaddr)dataclient.recv(1024)metadatajson.loads(…

[Angular JS教程] HeroService: getHeroes failed: undefined 问题解决方法
最近在学习入门Angular JS,学习资源是https://angular.cn/tutorial, 在学习到 “https://angular.cn/tutorial/toh-pt6模拟数据服务器” 阶段时,客户端访问http://localhost:4200/无法get到英雄列表,Message系统记录日志如下&…

BZOJ 4059: [Cerc2012]Non-boring sequences ( )
要快速在一段子序列中判断一个元素是否只出现一次 , 我们可以预处理出每个元素左边和右边最近的相同元素的位置 , 这样就可以 O( 1 ) 判断.考虑一段序列 [ l , r ] , 假如我们找到了序列中唯一元素的位置 p , 那我们只需检查 [ l , p - 1 ] & [ p 1 , r ] 是否 non-boring…

Java项目:小蜜蜂扩音器网上商城系统(java+JSP+Servlet+JDBC+Ajax+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目简述 用户功能模块: 用户注册: 用户登录:商品模块:订单模块;后台管理系统功能:管理员模块: 商品模块:…

WebBrowserProgramming - Python Wiki
WebBrowserProgramming - Python WikiWeb Browser Programming in Python

C++ transform for_each
#include<iostream>#include<vector>#include <list>#include <algorithm>#include <functional> using namespace std; //不需拷贝,速度快void square(int &elementParam){ elementParam elementParam*elementParam;} //速度…

When should static_cast, dynamic_cast and reinterpret_cast be used?
这是我偶然在 http://stackoverflow.com/questions/ 网页上发现的一个问题(类似博客园的博问),问题主要是关于询问应该怎样使用,以及何时使用C里面的这几种类型转换操作符:static_case, dynamic_cast,以及 …

Java项目:养老院管理系统(java+SSM+JSP+Easyui+maven+mysql)
源码获取:博客首页 "资源" 里下载! 运行环境: JDK1.8、tomcat8、eclipse、mysql5.6、Navicat 功能实现: 用户: 用户名,登录密码,姓名,性别,出生日期,用户照片,联系电话,邮箱,家庭地址,注册时间 老人: 老人编号,姓名,…

Linux访问Windows磁盘实现共享
业务需求说明:公司在部署hadoop集群和DB server与SAN存储,公司的想法是前端通过DB Server能够将非结构化的数据能放进SAN存储当中,而hadoop集群也能够访问这个SAN存储。因此需要在SAN磁盘阵列中开辟一个共享区域,这个区域技能让DB…

ubuntu环境ceph配置入门(一)
为什么80%的码农都做不了架构师?>>> 环境:ubuntu server 14.04 64bit,安装ceph版本0.79 正常情况下应有多个主机,这里为了快速入门以一台主机为例,多台主机配置方式类似。 1. 配置静态IP及主机名 静态IP配…

mysql查看当前实时连接数
静态查看: SHOW PROCESSLIST; SHOW FULL PROCESSLIST; SHOW VARIABLES LIKE %max_connections%; SHOW STATUS LIKE %Connection%; 实时查看: mysql> show status like Threads%; -------------------------- | Variable_name | Value | ------------…

lsof 简介
lsof简介 lsof(listopen files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议 (TCP) 和用户数据报协…

Java项目:健身器材商城系统(java+Jdbc+Servlet+Ajax+Fileupload+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目运行 环境配置: Jdk1.8 Tomcat8.5 mysql Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: Jdbc Servlert html css JavaScrip…

Xcode中如何解决无法使用svn命令行的问题
今天在自己机器上安装了xp虚拟机,然后在xp虚拟机上安装了svn的服务器.发现原本Xcode5以后就自带的svn竟然在终端无法使用命令行,出现了以下的错误: xcrun: error: active developer path ("/Volumes/Xcode/Xcode.app/Contents/Developer") does not exist, use xcode…

查看和设置MySQL数据库字符集(转)
查看和设置MySQL数据库字符集作者:scorpio 2008-01-21 10:05:17 标签: 杂谈 Liunx下修改MySQL字符集:1.查找MySQL的cnf文件的位置find / -iname *.cnf -print /usr/share/mysql/my-innodb-heavy-4G.cnf/usr/share/mysql/my-large.cnf/usr/sha…

数据库管理工具dbeaver
https://dbeaver.io/ 转载于:https://www.cnblogs.com/mingzhang/p/11016229.html

linux文件权限详解
linux文件权限详解 一、文件和目录权限概述在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问;允许一个预先指定的用户…

linux定时器(crontab)实例
linux实验示例----实现每2分钟将“/etc”下面的文件打包存储到“/usr/lobal”目录下 Step1:编辑当前用户的crontab并保存终端输入:>crontab -u root -l #查看root用户设置的定时器>crontab -u root -e #进入vi编译模式 00-59/2 * * * * /bin/bash …

Java项目:晚会抽奖系统(java+Jdbc+Servlet+Ajax+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目运行 环境配置: Jdk1.8 Tomcat8.5 mysql Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: Jdbc Servlert html css JavaScrip…

hdu 4587 2013南京邀请赛B题/ / 求割点后连通分量数变形。
题意:求一个无向图的,去掉两个不同的点后最多有几个连通分量。 思路:枚举每个点,假设去掉该点,然后对图求割点后连通分量数,更新最大的即可。算法相对简单,但是注意几个细节: 1&…

javascript中 (function(){})();如何理解?
javascript中 (function(){})();如何理解? javascript中: (function(){})()是匿名函数,主要利用函数内的变量作用域,避免产生全局变量,影响整体页面环境,增加代码的兼容性。 (function(){})是一个标准的函数定义,但是…
通过IP地址和子网掩码与运算计算相关地址
知道ip地址和子网掩码后可以算出: 1、网络地址 2、广播地址 3、地址范围 4、本网有几台主机 例1:下面例子IP地址为1921681005子网掩码是2552552550。算出网络地址、广播地址、地址范围、主机数。 一)分步骤计算 1) 将IP地址和子网掩码换算为二进制…

Java项目:兼职平台系统(java+Springboot+ssm+HTML+maven+Ajax+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目运行 环境配置: Jdk1.8 Tomcat8.5 mysql Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: HTML Springboot SpringMVC MyBatis…

java实现时间的比较
时间大小的比较以及把String类型的时间转换为Date类是时间在开发中是非常常见的,下面的主要是一个工具方法 public class Test {public static void main(String[] args) {// TODO Auto-generated method stubString sTime "2015-07-13";String fTime &…