JDBC基本CRUD

7次阅读

共计 6022 个字符,预计需要花费 16 分钟才能阅读完成。

整体项目结构


bean 代码

package bean;

public class Apply {
    private long id;
    private String sname;
    private String qq;
    private long enterTime;
    private String type;
    private String school;
    private long number;
    private String repLink;
    private String goal;

    @Override
    public String toString() {
        return "Apply{" +
                "id=" + id +
                ", sname='" + sname + '\'' +
                ", qq='" + qq + '\'' +
                ", enterTime=" + enterTime +
                ", type='" + type + '\'' +
                ", school='" + school + '\'' +
                ", number=" + number +
                ", repLink='" + repLink + '\'' +
                ", goal='" + goal + '\'' +
                '}';
    }

    public Apply() {}

    public Apply(int id, String sname, String qq, long enterTime, String type, String school, long number, String repLink, String goal) {
        this.id = id;
        this.sname = sname;
        this.qq = qq;
        this.enterTime = enterTime;
        this.type = type;
        this.school = school;
        this.number = number;
        this.repLink = repLink;
        this.goal = goal;
    }

    public Apply(String sname, String qq, long enterTime, String type, String school, long number, String repLink, String goal) {
        this.sname = sname;
        this.qq = qq;
        this.enterTime = enterTime;
        this.type = type;
        this.school = school;
        this.number = number;
        this.repLink = repLink;
        this.goal = goal;
    }

    public long getId() {return id;}

    public void setId(long id) {this.id = id;}

    public String getSname() {return sname;}

    public void setSname(String sname) {this.sname = sname;}

    public String getQq() {return qq;}

    public void setQq(String qq) {this.qq = qq;}

    public long getEnterTime() {return enterTime;}

    public void setEnterTime(long enterTime) {this.enterTime = enterTime;}

    public String getType() {return type;}

    public void setType(String type) {this.type = type;}

    public String getSchool() {return school;}

    public void setSchool(String school) {this.school = school;}

    public long getNumber() {return number;}

    public void setNumber(long number) {this.number = number;}

    public String getRepLink() {return repLink;}

    public void setRepLink(String repLink) {this.repLink = repLink;}

    public String getGoal() {return goal;}

    public void setGoal(String goal) {this.goal = goal;}

}

接口代码

package dao.impl;
import bean.Apply;
import java.util.List;
public interface IApplyDao {int getTotal();
    void add(Apply apply);
    void delete(long id);
    void update(Apply apply);
    Apply get(long id);
    List<Apply> getAll();}

实现代码

package dao.impl.impl;

import bean.Apply;
import dao.impl.IApplyDao;
import utils.UtilDAO;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class ApplyDAOImpl implements IApplyDao {

    static {
        try {Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        // 添加数据
//        Apply apply = new Apply(2, "nick", "43523", 3452341, "Html", "SCHOOL", 4, "hgw3204", "DAY DAY UP");
//        new ApplyDAOImpl().add(apply);

        // 删除数据
//        new ApplyDAOImpl().delete(13);

        // 更新数据
//        new ApplyDAOImpl().update(apply);

        // 获取对象
//        final Apply apply = new ApplyDAOImpl().get(5);
//        System.out.println(apply);

        // 获取所有对象
        final List<Apply> all = new ApplyDAOImpl().getAll();
        for (Apply apply :
                all) {System.out.println(apply);
        }
    }

    @Override
    public int getTotal() {String sql = "select count(*) from applytable";
        int total = 0;
        try (final Connection c = UtilDAO.getConnection(); Statement st = c.createStatement();) {final ResultSet rs = st.executeQuery(sql);
            if (rs.next())
                total = rs.getInt(1);
        } catch (SQLException e) {e.printStackTrace();
        }
        return total;
    }

    @Override
    public void add(Apply apply) {
        String sql = "insert into applytable" +
                "(id,sname, qq, entertime, `type`, school,`number`,replink,goal)" +
                "values (null, ?, ?, ?, ?, ?, ?, ?, ?)";
        try (final Connection c = UtilDAO.getConnection(); PreparedStatement ps = c.prepareStatement(sql)) {ps.setString(1, apply.getSname());
            ps.setString(2, apply.getQq());
            ps.setLong(3, apply.getEnterTime());
            ps.setString(4, apply.getType());
            ps.setString(5, apply.getSchool());
            ps.setLong(6, apply.getNumber());
            ps.setString(7, apply.getRepLink());
            ps.setString(8, apply.getGoal());

            ps.execute();} catch (SQLException e) {e.printStackTrace();
        }
    }

    @Override
    public void delete(long id) {
        String sql = "delete from applytable where id =" + id;
        try (final Connection c = UtilDAO.getConnection(); final Statement st = c.createStatement()) {st.execute(sql);
        } catch (SQLException e) {e.printStackTrace();
        }
    }

    @Override
    public void update(Apply apply) {
        String sql = "update applytable set sname = ?, qq = ?," +
                "entertime = ?, `type` = ?, school = ?,`number` = ?, replink = ?, goal = ?" +
                "where id = ?";
        try (final Connection c = UtilDAO.getConnection(); final PreparedStatement ps = c.prepareStatement(sql)){ps.setString(1, apply.getSname());
            ps.setString(2, apply.getQq());
            ps.setLong(3, apply.getEnterTime());
            ps.setString(4, apply.getType());
            ps.setString(5, apply.getSchool());
            ps.setLong(6, apply.getNumber());
            ps.setString(7, apply.getRepLink());
            ps.setString(8, apply.getGoal());
            ps.setLong(9, apply.getId());

            ps.execute();} catch (SQLException e) {e.printStackTrace();
        }
    }

    @Override
    public Apply get(long id) {
        String sql = "select * from applytable where id =" + id;
        Apply apply = null;
        try (final Connection c = UtilDAO.getConnection(); final Statement st = c.createStatement()) {final ResultSet rs = st.executeQuery(sql);
            while (rs.next()) {apply = new Apply();
                apply.setId(id);
                apply.setSname(rs.getString("sname"));
                apply.setQq(rs.getString("qq"));
                apply.setEnterTime(rs.getLong("entertime"));
                apply.setType(rs.getString("type"));
                apply.setSchool(rs.getString("school"));
                apply.setNumber(rs.getLong("number"));
                apply.setRepLink(rs.getString("replink"));
                apply.setGoal(rs.getString("goal"));

            }
        } catch (SQLException e) {e.printStackTrace();
        }
        return apply;
    }

    @Override
    public List<Apply> getAll() {
        String sql = "select * from applytable order by id desc";
        List<Apply> applies = new ArrayList<>();
        try (final Connection c = UtilDAO.getConnection(); final Statement st = c.createStatement()){final ResultSet rs = st.executeQuery(sql);
            while ((rs.next())) {Apply apply = new Apply();
                apply.setId(rs.getLong("id"));
                apply.setSname(rs.getString("sname"));
                apply.setQq(rs.getString("qq"));
                apply.setEnterTime(rs.getLong("entertime"));
                apply.setType(rs.getString("type"));
                apply.setSchool(rs.getString("school"));
                apply.setNumber(rs.getLong("number"));
                apply.setRepLink(rs.getString("replink"));
                apply.setGoal(rs.getString("goal"));

                applies.add(apply);
            }
        } catch (SQLException e) {e.printStackTrace();
        }
        return applies;
    }


}

工具类代码

package utils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class UtilDAO {
    static final String URL = "jdbc:mysql://127.0.0.1:3306/xiuzhenyuan?characterEncoding=UTF-8";
    static final String USERNAME = "root";
    static final String PWD = "admin";

    public static Connection getConnection() throws SQLException {return DriverManager.getConnection(URL, USERNAME, PWD);
    }
}

正文完
 0