WEB项目-音乐播放器

需求分析

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;
    }

    @Override
    public 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;
    }

    @Override
    public 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(
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值