音乐播放器

  • 需求分析
  • 数据库设计
  • 实体类
  • Dao层
  • Servlet层
  • 补充

需求分析

1.注册登陆
使用post请求,登陆路径为/login,传输的数据为username,password,这里就使用json来组织数据。而响应通过一组键值对来返回(msg:true)true表示登陆成功,false表示登陆失败
注册路径为/
2.上传音乐
使用post请求,路径为/uplode,传输的数据为filename(文件名)及文件(.mp3)同时给服务器目录下上传文件
3.删除音乐
使用post请求,路径为/delete,传输数据为音乐id,再通过Session获取user对象来获取userid
4.批量删除音乐
使用post请求,路径为/deletemore,传输数据为音乐id数组,再通过Session获取user对象来获取userid
5.查询音乐
使用post请求,路径为/findmusic,传输数据为查询数据,进行数据库模糊查询
6.添加音乐至喜欢列表
使用post请求,路径为/lovemusic,传输数据为音乐id及用户id并添加信息至数据库
7.查找在喜欢列表中的音乐
使用post请求,路径为/findlove,传输数据为用户id
8.移除喜欢列表中的音乐
使用post请求,路径为/removelove,传输数据为用户id及音乐id,并在数据库中移除对应的数据

数据库设计

1.音乐表
id 音乐id
title 音乐名
singer 歌手名
time 上传时间
url 音乐路径
userid 上传用户id
2.用户表
id 用户id
username 用户名
password 密码
age 年龄
gender 性别
email 邮箱
3.喜欢列表
id 唯一索引id(没有什么意思,对类似数据做区分)
userid 用户id
musicid 音乐id

实体类

Music:

public class Music {private int id;private String title;private String single;private String time;private String url;private int userid;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getSingle() {return single;}public void setSingle(String single) {this.single = single;}public String getTime() {return time;}public void setTime(String time) {this.time = time;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public int getUserid() {return userid;}public void setUserid(int userid) {this.userid = userid;}@Overridepublic String toString() {return "Music{" +"id=" + id +", title='" + title + '\'' +", single='" + single + '\'' +", time='" + time + '\'' +", url='" + url + '\'' +", userid=" + userid +'}';}
}

User:

public class User {private int id;private String username;private String password;private int age;private String gender;private String email;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", password='" + password + '\'' +", age=" + age +", gender='" + gender + '\'' +", email='" + email + '\'' +'}';}
}

Dao层

UserDao:

public class UserDao {public User login(User loginUser) {User user = null;Connection connection = null;PreparedStatement statement = null;ResultSet ret = null;try {connection = DBUtils.getConn();String sql = "select * from user where username = ? and password = ?";statement = connection.prepareStatement(sql);statement.setString(1,loginUser.getUsername());statement.setString(2,loginUser.getPassword());ret = statement.executeQuery();if (ret.next()){user = new User();user.setId(ret.getInt("id"));user.setUsername(ret.getString("username"));user.setPassword(ret.getString("password"));user.setEmail(ret.getString("email"));user.setGender(ret.getString("gender"));user.setAge(ret.getInt("age"));}else {System.out.println("登陆失败");}} catch (SQLException throwables) {throwables.printStackTrace();}finally {DBUtils.getClose(connection,statement,ret);}return user;}public void insertUser(User user){Connection con = null;PreparedStatement pre = null;try {con = DBUtils.getConn();String sql = "insert into user values (null,?,?,?,?,?)";pre = con.prepareStatement(sql);pre.setString(1,user.getUsername());pre.setString(2,user.getPassword());pre.setString(3,user.getEmail());pre.setString(4,user.getGender());pre.setInt(5,user.getAge());int ret = pre.executeUpdate();if (ret == 1){System.out.println("注册成功");}else {System.out.println("注册失败");}}catch (SQLException e){e.printStackTrace();}finally {DBUtils.getClose(con,pre,null);}}
}

MusicDao层:

public class MusicDao {public int insert(Music music){Connection con = null;PreparedStatement pre = null;try {con = DBUtils.getConn();String sql = "insert into music values(null,?,?,now(),?,?)";pre = con.prepareStatement(sql);pre.setString(1,music.getTitle());pre.setString(2,music.getSinger());pre.setString(3,music.getUrl());pre.setInt(4,music.getUserid());int ret = pre.executeUpdate();if (ret == 1){return 1;}} catch (SQLException throwables) {throwables.printStackTrace();}finally {DBUtils.getClose(con,pre,null);}return 0;}public List<Music> findMusic(){List<Music> list = new ArrayList<>();Connection connection = null;PreparedStatement statement = null;ResultSet ret = null;try {connection = DBUtils.getConn();String sql = "select * from music";statement = connection.prepareStatement(sql);ret = statement.executeQuery();while(ret.next()){Music music = new Music();music.setId(ret.getInt("id"));music.setTitle(ret.getString("title"));music.setSinger(ret.getString("singer"));music.setUrl(ret.getString("url"));music.setTime(ret.getString("time"));music.setUserid(ret.getInt("userid"));list.add(music);}} catch (SQLException throwables) {throwables.printStackTrace();}finally {DBUtils.getClose(connection,statement,ret);}return list;}public Music findMusicById(int id){Music music = null;Connection connection = null;PreparedStatement statement = null;ResultSet ret = null;try {connection = DBUtils.getConn();String sql = "select * from music where id = ?";statement = connection.prepareStatement(sql);statement.setInt(1,id);ret = statement.executeQuery();if (ret.next()){music = new Music();music.setId(ret.getInt("id"));music.setTitle(ret.getString("title"));music.setSinger(ret.getString("singer"));music.setUrl(ret.getString("url"));music.setTime(ret.getString("time"));music.setUserid(ret.getInt("userid"));}}catch(SQLException throwables) {throwables.printStackTrace();}finally {DBUtils.getClose(connection,statement,ret);}return music;}public List<Music> ifMusic(String str){List<Music> list = new ArrayList<>();Connection connection = null;PreparedStatement statement = null;ResultSet ret = null;try {connection = DBUtils.getConn();String sql = "select * from music where title like ? ";statement = connection.prepareStatement(sql);statement.setString(1,"%" + str + "%");ret = statement.executeQuery();while (ret.next()){Music music = new Music();music.setId(ret.getInt("id"));music.setTitle(ret.getString("title"));music.setSinger(ret.getString("singer"));music.setUrl(ret.getString("url"));music.setTime(ret.getString("time"));music.setUserid(ret.getInt("userid"));list.add(music);}}catch(SQLException throwables) {throwables.printStackTrace();}finally {DBUtils.getClose(connection,statement,ret);}return list;}public int deleteMusicById(int id) {Connection con = null;PreparedStatement pre = null;try {con = DBUtils.getConn();String sql = "delete from mylove where music_id = ?";pre = con.prepareStatement(sql);pre.setInt(1,id);int ret = pre.executeUpdate();sql = "delete from music where id = ?";pre = con.prepareStatement(sql);pre.setInt(1,id);ret = pre.executeUpdate();if (ret == 1){System.out.println("删除成功");return ret;}else{System.out.println("删除失败");}} catch (SQLException throwables) {throwables.printStackTrace();}finally {DBUtils.getClose(con,pre,null);}return 0;}
}

LoveMusicDao:

public class LoveMusicDao {public boolean insertLoveMusic(int userId,int musicId){Connection con = null;PreparedStatement pre= null;try {con = DBUtils.getConn();String sql = "insert into mylove values(null,?,?)";pre = con.prepareStatement(sql);pre.setInt(1,userId);pre.setInt(2,musicId);int ret = pre.executeUpdate();if (ret == 1){return true;}}catch (SQLException e){e.printStackTrace();}finally {DBUtils.getClose(con,pre,null);}return false;}public List<Music> findLoveMusic(int userId){Connection con = null;PreparedStatement pre = null;List<Music> musics = new ArrayList<>();ResultSet ret = null;try {con = DBUtils.getConn();String sql = "select music.* from music , mylove  where mylove.music_id = music.id and mylove.user_id = ?";pre = con.prepareStatement(sql);pre.setInt(1,userId);ret = pre.executeQuery();while (ret.next()){Music music = new Music();music.setId(ret.getInt("id"));music.setTitle(ret.getString("title"));music.setSinger(ret.getString("singer"));music.setUrl(ret.getString("url"));music.setUserid(ret.getInt("userid"));music.setTime(ret.getString("time"));musics.add(music);}}catch (SQLException e){e.printStackTrace();}finally {DBUtils.getClose(con,pre,ret);}return musics;}public boolean findLoveMusicByUserIdAndMusicId(int userId,int musicId){Connection con = null ;PreparedStatement pre = null;ResultSet ret = null;try {con = DBUtils.getConn();String sql = "select * from mylove where user_id = ? and music_id = ?";pre = con.prepareStatement(sql);pre.setInt(1,userId);pre.setInt(2,musicId);ret = pre.executeQuery();if (ret.next()){return true;}}catch (SQLException e){e.printStackTrace();}finally {DBUtils.getClose(con,pre,ret);}return false;}// 我喜欢列表里 查找str关键字的音乐public List<Music> findLoveMusicBykeyAndUserId(String str, int user_id){List<Music> musics = null;Connection con = null;PreparedStatement pre = null;ResultSet ret = null;try {con = DBUtils.getConn();String sql = "select music.* from music,mulove where music.id = mulove.music_id " +"and mulove.user_id = ? and music.title like ? ";pre = con.prepareStatement(sql);pre.setInt(1,user_id);pre.setString(2,"%"+str+"%");ret = pre.executeQuery();while (ret.next()){Music music = new Music();music.setId(ret.getInt("id"));music.setTitle(ret.getString("title"));music.setSinger(ret.getString("singer"));music.setUrl(ret.getString("url"));music.setTime(ret.getString("time"));music.setUserid(ret.getInt("userid"));musics.add(music);}}catch (SQLException e){e.printStackTrace();}finally {DBUtils.getClose(con,pre,ret);}return musics;}public int removeLoveMusic(int userId,int musicId){Connection con = null;PreparedStatement pre = null;try {con = DBUtils.getConn();String sql = "delete from mylove where user_id = ? and music_id = ?";pre = con.prepareStatement(sql);pre.setInt(1,userId);pre.setInt(2,musicId);int ret = pre.executeUpdate();if (ret==1){return 1;}}catch (SQLException e){e.printStackTrace();}finally {DBUtils.getClose(con,pre,null);}return 0;}
}

Servlet层

LoginServlet:

@WebServlet("/login")
public class LoginServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setContentType("application/json;charset=utf-8");Map<String,Object> retmap = new HashMap<>();String username = req.getParameter("username");String password = req.getParameter("password");User loginUser = new User();loginUser.setUsername(username);loginUser.setPassword(password);UserDao userDao = new UserDao();User user = userDao.login(loginUser);if (user == null){retmap.put("msg",false);}else {req.getSession().setAttribute("user",user);retmap.put("msg",true);}ObjectMapper mapper = new ObjectMapper();mapper.writeValue(resp.getWriter(),retmap);}
}

RegisterServlet:

@WebServlet("/register")
public class RegisterServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setContentType("application/json;charset=utf-8");String username = req.getParameter("username");String password = req.getParameter("password");String email = req.getParameter("email");String gender = req.getParameter("gender");int age = Integer.parseInt(req.getParameter("age"));Map<String,Object> retmap = new HashMap<>();UserDao userDao = new UserDao();User user = userDao.findusername(username);if (user == null){user = new User();user.setUsername(username);user.setPassword(password);user.setEmail(email);user.setGender(gender);user.setAge(age);boolean ret = userDao.insertUser(user);if (ret){System.out.println("注册成功");retmap.put("msg",true);}else {System.out.println("注册失败,信息错误");retmap.put("msg",false);}}else {System.out.println("注册失败,用户名已存在");retmap.put("msg",false);}ObjectMapper mapper = new ObjectMapper();mapper.writeValue(resp.getWriter(),retmap);}
}

UplodeServlet:

@MultipartConfig
@WebServlet("/upload")
public class UplodeServlet extends HttpServlet {private static final String SAVEPATH = "D:\\java\\musicdemo\\src\\main\\webapp\\music\\";@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset = utf-8");User user = (User) req.getSession().getAttribute("user");if (user == null){System.out.println("没有登陆");resp.getWriter().write("<div>未登录,不能上传</div>");return;}else {Part part = req.getPart("filename");String head = part.getHeader("Content-Disposition");int start = head.lastIndexOf("=");String filename = head.substring(start+1).replace("\"","");part.write(SAVEPATH + filename);String title = filename.replace(".mp3","");Music music = new Music();music.setTitle(title);music.setUrl("music/"+title);music.setSinger(req.getParameter("singer"));music.setUserid(user.getId());MusicDao musicDao = new MusicDao();int ret = musicDao.insert(music);if (ret==1){resp.sendRedirect("list.html");}else {part.delete();resp.getWriter().write("<div>上传失败</div>");}}}
}

FindMusicServlet

@WebServlet("/findmusic")
public class FindMusicServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setContentType("application/json;charset=utf-8");String musicName = req.getParameter("musicName");if (musicName == null){musicName="";}MusicDao musicDao = new MusicDao();new ObjectMapper().writeValue(resp.getWriter(), musicDao.findMusicByKey(musicName));}
}

DeleteMusicServlet:

@WebServlet("/delete")
public class DeleteMusicServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setContentType("application/json;charset=utf-8");int id = Integer.parseInt(req.getParameter("id"));MusicDao musicDao = new MusicDao();Map<String,Object> retrnMap = new HashMap<>();User user = (User) req.getSession().getAttribute("user");Music music = musicDao.findMusicById(id);if (user == null){System.out.println("未登录,删除失败");retrnMap.put("msg",false);}else if (music == null) {System.out.println("找不到相关信息,删除失败");retrnMap.put("msg",false);}else {if (music.getUserid() == user.getId()){int del = musicDao.deleteMusicById(id);File file = new File("D:\\java\\musicdemo\\src\\main\\webapp\\"+music.getUrl()+".mp3");System.out.println("删除成功");file.delete();retrnMap.put("msg",true);}else {System.out.println("非本人上传,删除失败");retrnMap.put("msg",false);}}ObjectMapper mapper = new ObjectMapper();mapper.writeValue(resp.getWriter(),retrnMap);}
}

DeleteMoreServlet:

@WebServlet("/deletemore")
public class DeleteMoreServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setContentType("application/json;charset=utf-8");String[] ids = req.getParameterValues("id[]");int sum = 0;Map<String,Object> retmap = new HashMap<>();MusicDao musicDao = new MusicDao();User user = (User)req.getSession().getAttribute("user");if (user == null){System.out.println("未登陆,不能删除");retmap.put("msg",false);}else {Music[] musics = new Music[ids.length];for (int i = 0;i<ids.length;i++){musics[i] = musicDao.findMusicById(Integer.parseInt(ids[i]));if (musics[i] == null){System.out.println("删除音乐信息缺失,不能删除");retmap.put("msg",false);break;}else if (musics[i].getUserid() != user.getId()){System.out.println("非本人上传的音乐,不能删除");retmap.put("msg",false);break;}else {sum+=1;}}if (sum == ids.length){for (int i=0;i<musics.length;i++){musicDao.deleteMusicById(musics[i].getId());File file = new File("D:\\java\\musicdemo\\src\\main\\webapp\\"+musics[i].getUrl()+".mp3");file.delete();}System.out.println("删除成功");retmap.put("msg",true);}}ObjectMapper mapper = new ObjectMapper();mapper.writeValue(resp.getWriter(),retmap);}
}

LoveMusicServlet:

@WebServlet("/lovemusic")
public class LoveMusicServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setContentType("application/json;charset=utf-8");Map<String,Object> retmap = new HashMap<>();User user = (User) req.getSession().getAttribute("user");int id = Integer.parseInt(req.getParameter("id"));LoveMusicDao loveMusicDao = new LoveMusicDao();if (user == null){retmap.put("msg",false);System.out.println("未登录");}else {boolean ret = loveMusicDao.findLoveMusicByUserIdAndMusicId(user.getId(),id);if (ret){retmap.put("msg",false);System.out.println("喜欢列表已存在");}else {ret = loveMusicDao.insertLoveMusic(user.getId(),id);if (ret){retmap.put("msg",true);System.out.println("添加成功");}else {retmap.put("msg",false);System.out.println("添加失败");}}}ObjectMapper mapper = new ObjectMapper();mapper.writeValue(resp.getWriter(),retmap);}
}

FindLoveServlet:

@WebServlet("/findlove")
public class FindLoveServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setContentType("application/json;charset=utf-8");User user = (User)req.getSession().getAttribute("user");LoveMusicDao loveMusicDao = new LoveMusicDao();List<Music> musics = new ArrayList<>();String str = req.getParameter("str");if (user == null){System.out.println("未登录");}else {musics = loveMusicDao.findLoveMusicBykeyAndUserId(str,user.getId());}ObjectMapper mapper = new ObjectMapper();mapper.writeValue(resp.getWriter(),musics);}
}

RemoveLoveServlet:

@WebServlet("/removelove")
public class RemoveLoveServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setContentType("application/json;charset=utf-8");User user = (User) req.getSession().getAttribute("user");int id = Integer.parseInt(req.getParameter("music_id"));Map<String,Object> retmap = new HashMap<>();LoveMusicDao loveMusicDao = new LoveMusicDao();if (user == null){retmap.put("msg",false);System.out.println("未登录");}else {int ret = loveMusicDao.removeLoveMusic(user.getId(),id);if (ret == 1){retmap.put("msg",true);System.out.println("删除成功");}else {retmap.put("msg",false);System.out.println("删除失败");}}ObjectMapper mapper = new ObjectMapper();mapper.writeValue(resp.getWriter(),retmap);}
}

补充

关于JSON,JSON是一种常见的组织数据的组织方式,源于JS,是一种键值对风格的数据格式,把对象存储到字符串中。
JSON使用示例:

public class Main {public static void main1(String[] args) throws JsonProcessingException {Person person = new Person(1,"lit","lit");ObjectMapper objectMapper = new ObjectMapper();String str =objectMapper.writeValueAsString(person);System.out.println(str);}
}

这样把对象转为字符串的方式叫做序列化,把字符串转为对象就叫做反序列化
如果在Servlet类中定义了这个属性,那么就表示返回给前端页面的数据类型为json,而不是htmlresp.setContentType("application/json;charset=utf-8");,如果在Servlet中写入如下代码,new ObjectMapper().writeValue(resp.getWriter(), musicDao.findMusicByKey(musicName));则代表给前端传入的数据为这个方法的返回值findMusicByKey(musicName)


postman 是一个模拟发送http请求的软件,可以模拟浏览器(客户端)发送一个你想发送的请求至服务器


在获取文件名时,如果使用postman来发送,则会对内容进行加密,如果需要解密,就可以使用如下方法:(使用浏览器则不需要)

//加密后的内容一般如下:%E8%AE%B8%E5%B7%8D%20-%20%E6%95%85%E4%B9%A1
//这时使用encode进行加密的 可以使用decode进行解密int index = filename.indexOf("%");filename = filename.substring(index);filename = URLDecoder.decode(filename,"utf-8");

WEB项目-音乐播放器相关推荐

  1. Java web项目——音乐播放器

    Java web项目--音乐播放器 1,需求分析 ①登录并查看自己的音乐列表 ②从本地上传音乐 ③删除某个音乐 ④删除选中的音乐 ⑤查询音乐(支持模糊查询) ⑥添加音乐到喜欢列表且可进行移除 ⑦可在喜 ...

  2. 微信小程序练手项目-音乐播放器

    微信小程序练手项目-音乐播放器 该项目只适合练手,大佬请绕道 项目展示图: 项目介绍 微信小程序音乐播放器 页面: 音乐推荐.播放器.播放列表 功能: 播放.暂停.上一首.下一首.跳转播放列表.实时进 ...

  3. web html5音乐播放器设计与实现,基于HTML5技术的音乐播放器的设计与实现

    Vol.33No.11Nov.2017 赤峰学院学报(自然科学版) Journal of Chifeng University (Natural Science Edition )第33卷第11期(下 ...

  4. Linux项目:音乐播放器

    文章目录 1.项目介绍 2.前端代码 1.httplib快速搭建一个http服务器 2.B/S双方的数据交互选择JSON数据格式,http请求和响应的正文中采用jsoncpp开源库 3.前段的js代码 ...

  5. 个人项目——音乐播放器(一)

    1 功能需求及技术可行性分析 1.1编写目的   现今社会生活紧张,而欣赏音乐史其中最好的舒缓压力的方式之一,音乐播放类的软 件数不胜数,为什么我还要再写一个播放器出来呢?因为现有的音乐播放器功能实在 ...

  6. Vue项目 音乐播放器 学习笔记 列表数据 Ⅱ

    Home 组件 1. 创建新 Home 2. 创建 Home 相关组件 3. 编写组件代码 Home 组件 1. 创建新 Home 在 views 文件夹中新建 Home 文件夹用来存放主页的视图,将 ...

  7. 个人项目(一)-- 音乐播放器

    一.需求分析 现在很多音乐播放器并不能找到所有的音乐,所以往往需要下载多个播放器才能完善想听的歌单.如果有一个公共的音乐服务器,可以有不同的人分享自己喜欢的音乐,通过渐渐丰富音乐库,就可以让大家只在网 ...

  8. (附源码)springboot+基于微信小程序音乐播放器的设计与实现 毕业设计271156

    Springboot音乐播放小程序的设计与实现 摘 要 本文设计了一种基于微信小程序的音乐播放器,系统为人们提供了方便快捷.即用即搜的音乐搜索播放服务,包括音乐资讯.音乐库推荐.交流论坛.注册登录.最 ...

  9. springboot+基于微信小程序音乐播放器的设计与实现 毕业设计-附源码271156

    Springboot音乐播放小程序的设计与实现 摘 要 本文设计了一种基于微信小程序的音乐播放器,系统为人们提供了方便快捷.即用即搜的音乐搜索播放服务,包括音乐资讯.音乐库推荐.交流论坛.注册登录.最 ...

最新文章

  1. 疯狂Spring Cloud连载(5)Eureka集群搭建
  2. ES6-const注意
  3. 一个有价值的 Sharepoint WebPart 页签部件
  4. tomcat配置https以及http强制跳转https(如何生成证书)
  5. leetcode - 1049. 最后一块石头的重量 II
  6. 解析鸿蒙内核消息队列QueueMail接口的哼哈二将
  7. Linux系统基本操作(二)—设置本地光盘为yum源
  8. 三宝小精灵机器人_三宝小精灵幼育机器人-引领幼教AI新浪潮
  9. SQL2016安装错误:安装程序无法与下载服务器联系。请提供 Microsoft R Open 和 Microsoft R Server 安装文件的位置
  10. Lua脚本语言——Lua脚本基础语法
  11. 基于证据理论的多源数据融合仿真实验matlab代码
  12. 统计基础(十)特征选择
  13. Hash一致性算法(分片机制)
  14. OSChina 周五乱弹 —— 终于发现红薯看片的证据了
  15. 七牛云被攻击偷跑流量
  16. 如何寻找已注册dll的路径
  17. C++学习笔记【1】——\n与endl的区别是什么?
  18. IR Cut Filter主要作用分别是什么?_什么是钻石的4C?
  19. 华为AP+AC本地转发模式配置以及理解
  20. oracle 监听unknown,请问监听启动后 Instance XE, status UNKNOWN 是什么情况?

热门文章

  1. Vba实现按选定类型排序标记
  2. 取消 window 7 激活提示
  3. amazeui分页打印
  4. fzu2190---非提的救赎 (单调栈)
  5. 6park留园 android,‎「掌上留园-6park」をApp Storeで
  6. 查询各科成绩最高分、最低分和平均分:以如下形式显示:课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率--及格为>=60,中等为:70-80,优良为:80-90,优秀为:
  7. 刷刷刷!-数据分析必刷文档整理
  8. 种植的黄瓜,为什么会出现早衰?如何防治和补救?
  9. pytorch基于GAN生成对抗网络的数据集扩充
  10. veracrypt源码编译