Java實(shí)戰(zhàn)之制作在線音樂網(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ù)的方法,對應(yīng)登錄表單中的用戶名name="user_name"
String user_name = request.getParameter("user_name");
String user_password = request.getParameter("user_password");
// 調(diào)用mapper層的登錄的方法,從數(shù)據(jù)庫中匹配用戶名和密碼,并放回用戶名
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ù)庫中查找到的用戶名:" + 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ù)的方法,對應(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);
}
// 用戶注冊
@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 = "用戶名已存在,請重新注冊!";
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ù)長度過長錯(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ù)長度過長錯(cuò)誤,testName";
statusCode = 201;
return webResponse.getWebResponse(statusCode, statusMsg, data);
}
// 重要,建立數(shù)據(jù),以便后期數(shù)據(jù)庫能調(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ù)長度過長錯(cuò)誤,info";
statusCode = 201;
return webResponse.getWebResponse(statusCode, statusMsg, data);
}
}
if (isAdd) {
// 插入語句,插入數(shù)據(jù)庫,重要
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ù)過長錯(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ù)條件獲取分頁數(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ù)條件獲取分頁數(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);
}
}我的音樂歌單管理
@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ù)庫插入語句,對應(yīng)xml文件的insert
this.myMusicService.insert(myMusic);
webResponse.setStatusCode(statusCode);
return webResponse;
}
// 從數(shù)據(jù)庫中獲取歌曲數(shù)據(jù),在我的音樂中顯示
@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("我的音樂顯示列表前收藏的歌曲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("我的音樂顯示列表前用戶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反射將類中當(dāng)前屬性字段對應(yīng)的內(nèi)容復(fù)制到另外一個(gè)類中
BeanUtils.copyProperties(vo, voFont);
listFont.add(voFont);
voFont = new MyMusic();
}
map.put("list", listFont);
data = map;
statusMsg = "根據(jù)條件獲取分頁數(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);
}
// 刪除音樂
@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("刪除音樂前的用戶名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 {
@Autowired
protected WebResponse webResponse;
@Resource
protected IMusicLinkService musicLinkService;
@Resource
protected MusicLinkService musicLinkService2;
/**
* //常用注解快速解釋:
* @Controller :用于標(biāo)記在一個(gè)類上,使用它標(biāo)記的類就是一個(gè)SpringMVC Controller 對象。
* 分發(fā)處理器將會掃描使用了該注解的類的方法,并檢測該方法是否使用了@RequestMapping 注解。@Controller
* 只是定義了一個(gè)控制器類,而使用@RequestMapping 注解的方法才是真正處理請求的處理器。
*
* @RequestMapping :是一個(gè)用來處理請求地址映射的注解,可用于類或方法上。
* 用于類上,表示類中的所有響應(yīng)請求的方法都是以該地址作為父路徑;
* 用于方法上,表示在類的父路徑下追加方法上注解中的地址將會訪問到該方法
*
* @Autowired:@Autowired 注釋,它可以對類成員變量、方法及構(gòu)造函數(shù)進(jìn)行標(biāo)注,完成自動裝配的工作。 通過 @Autowired的使用來消除 set ,get方法。
*
*
* @Resource:@Autowired與@Resource都可以用來裝配bean. 都可以寫在字段上,或?qū)懺趕etter方法上。
*
*
* @Responsebody 注解表示該方法的返回的結(jié)果直接寫入 HTTP 響應(yīng)正文(ResponseBody)中,
* 一般在異步獲取數(shù)據(jù)時(shí)使用,通常是在使用 @RequestMapping 后,返回值通常解析為跳轉(zhuǎn)路徑,
* 加上 @Responsebody 后返回結(jié)果不會被解析為跳轉(zhuǎn)路徑,而是直接寫入HTTP 響應(yīng)正文中。
* 作用: 該注解用于將Controller的方法返回的對象,通過適當(dāng)?shù)腍ttpMessageConverter轉(zhuǎn)換為指定格式后,寫入到Response對象的body數(shù)據(jù)區(qū)。
*
*
*
*
* @RequestParam(value="aa" required=false)
* 1.可以對傳入?yún)?shù)指定參數(shù)名
*
* // 下面的對傳入?yún)?shù)指定為aa,如果前端不傳aa參數(shù)名,會報(bào)錯(cuò)
* @RequestParam(value="aa") String inputStr
*
* 2、可以通過required=false或者true來要求@RequestParam配置的前端參數(shù)是否一定要傳
*
* 3、如果@requestParam注解的參數(shù)是int類型,并且required=false,此時(shí)如果不傳參數(shù)的話,會報(bào)錯(cuò)。原因是,required=false時(shí),不傳參數(shù)的話,
* 會給參數(shù)賦值null,這樣就會把null賦值給了int,因此會報(bào)錯(cuò)。
*
*
*
*/
// 從數(shù)據(jù)庫中獲取歌曲數(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ù)庫中獲取數(shù)據(jù),并把對象的結(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ù)庫有15條音樂,則list中有15個(gè)對象,則size的大小為15
int size = list.size();
if (size > 0) {
List<MusicLink> listFont = new ArrayList<MusicLink>();
MusicLink vo;
MusicLink voFont = new MusicLink();
// 循環(huán)將獲取到的對象及結(jié)構(gòu)屬性克隆到一個(gè)新的voFont對象中,并保存到動態(tài)數(shù)組中
for (int i = 0; i < size; i++) {
vo = list.get(i);
// 通過java反射將類中當(dāng)前屬性字段對應(yīng)的內(nèi)容復(fù)制到另外一個(gè)類中
BeanUtils.copyProperties(vo, voFont);
listFont.add(voFont);
voFont = new MusicLink();
}
map.put("list", listFont);
// data是一個(gè)map對象
data = map;
statusMsg = "根據(jù)條件獲取分頁數(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ù)庫的操作
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ù)條件獲取分頁數(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 = "已收藏,請不要重復(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)之制作在線音樂網(wǎng)站的文章就介紹到這了,更多相關(guān)Java在線音樂網(wǎng)站內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之在線高中考試系統(tǒng)的實(shí)現(xiàn)
- Java實(shí)戰(zhàn)之實(shí)現(xiàn)在線小說閱讀系統(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è)置類頭注釋和方法注釋(圖文),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12
SpringMvc+POI處理excel表數(shù)據(jù)導(dǎo)入
這篇文章主要為大家詳細(xì)介紹了SpringMvc+POI處理excel表數(shù)據(jù)導(dǎo)入,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06
java8 stream自定義分組求和并排序的實(shí)現(xiàn)
這篇文章主要介紹了java8 stream自定義分組求和并排序的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
Spring學(xué)習(xí)JdbcTemplate數(shù)據(jù)庫事務(wù)參數(shù)
這篇文章主要為大家介紹了Spring學(xué)習(xí)JdbcTemplate數(shù)據(jù)庫事務(wù)參數(shù)使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Spring Boot項(xiàng)目中定制攔截器的方法詳解
這篇文章主要介紹了Spring Boot項(xiàng)目中定制攔截器的方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
myBatis組件教程之緩存的實(shí)現(xiàn)與使用
這篇文章主要給大家介紹了關(guān)于myBatis組件教程之緩存的實(shí)現(xiàn)與使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11

