1. 程式人生 > >簡單學生管理系統(JDBC操作)

簡單學生管理系統(JDBC操作)

1、學生類

package manage;

import java.util.Date;

/**
 * @author fanxf
 * @since 2018/4/27 17:01
 */
public class Student {

    private int id;

    private int age;

    private String sex;

    private String name;

    private Date dateCreated;

    public int getId() {
        return id;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Date getDateCreated() {
        return dateCreated;
    }

    public void setDateCreated(Date dateCreated) {
        this.dateCreated = dateCreated;
    }

    public Student() {
    }

    public Student(int age, String sex, String name) {
        this.age = age;
        this.sex = sex;
        this.name = name;
    }

    public Student(int id, int age, String sex, String name) {
        this.id = id;
        this.age = age;
        this.sex = sex;
        this.name = name;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                ", name='" + name + '\'' +
                ", dateCreated=" + dateCreated +
                '}';
    }
}

2、jdbc工具類

package manage;

import java.io.IOException;
import java.sql.*;
import java.util.Properties;

/**
 * @author fanxf
 * @since 2018/4/27 11:06
 */
//資料庫的工具類
public class JdbcUtils {

    private static String driver = "";
    private static String url = "";
    private static String user = "";
    private static String password = "";

    static {
        Properties p = new Properties();
        try {
            p.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties"));
        } catch (IOException e) {
            e.printStackTrace();
        }
        driver = p.getProperty("driver");
        url = p.getProperty("url");
        user = p.getProperty("user");
        password = p.getProperty("password");
        try {
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection() {
        try {
            return DriverManager.getConnection(url, user, password);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
    //釋放的時候要從小到大釋放
    //Connection -> Statement --> Resultset


    public static void release(ResultSet rs, Statement stmt, Connection conn) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

3、程式碼

package manage;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

/**
 * @author fanxf
 * @since 2018/4/27 17:06
 */
public class ManageSystem {

    private static Connection conn = null;
    private static PreparedStatement ps = null;
    private static ResultSet rs = null;

    /**
     * 新增學生資料
     *
     * @param student
     * @return
     */
    public static int addStudent(Student student) {
        conn = JdbcUtils.getConnection();
        int result = 0;
        try {
            ps = conn.prepareStatement("INSERT INTO student (age, sex, `name`, dateCreated) VALUES (?, ?, ?, now())");
            ps.setInt(1, student.getAge()); //設定第一個引數
            ps.setString(2, student.getSex()); //設定第二個引數
            ps.setString(3, student.getName()); //設定第三個引數
            result = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JdbcUtils.release(null, ps, conn);  //關閉連線
        }
        return result;
    }

    public void add() {
        Scanner scan = new Scanner(System.in);
        System.out.println("請輸入學生年齡");
        int age = scan.nextInt();
        System.out.println("請輸入學生性別");
        String sex = scan.next();
        System.out.println("請輸入學生姓名");
        String name = scan.next();
        Student s = new Student(age, sex, name);
        int flag = addStudent(s);
        if (flag > 0) {
            System.out.println("新增成功");
        } else {
            System.out.println("新增失敗");
        }
    }

    /**
     * 修改
     *
     * @param student
     * @return
     */
    public static int updateStudent(Student student) {
        conn = JdbcUtils.getConnection();
        int result = 0;
        try {
            ps = conn.prepareStatement("UPDATE student SET age = ?, sex = ?, `name` = ? WHERE id = ?");
            ps.setInt(1, student.getAge()); //設定第一個引數
            ps.setString(2, student.getSex()); //設定第二個引數
            ps.setString(3, student.getName()); //設定第三個引數
            ps.setInt(4, student.getId());
            result = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JdbcUtils.release(null, ps, conn);  //關閉連線
        }
        return result;
    }

    public void update() {
        Scanner scan = new Scanner(System.in);
        System.out.println("請輸入學生id");
        int id = scan.nextInt();
        System.out.println("請輸入學生年齡");
        int age = scan.nextInt();
        System.out.println("請輸入學生性別");
        String sex = scan.next();
        System.out.println("請輸入學生姓名");
        String name = scan.next();
        Student s = new Student(id, age, sex, name);
        int flag = updateStudent(s);
        if (flag > 0) {
            System.out.println("更新成功");
        } else {
            System.out.println("更新失敗");
        }
    }

    /**
     * 刪除
     *
     * @param id
     * @return
     */
    public static int deleteStudent(int id) {
        conn = JdbcUtils.getConnection();
        int result = 0;
        try {
            ps = conn.prepareStatement("DELETE FROM student WHERE id = ?");
            ps.setInt(1, id); //設定第一個引數
            result = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            JdbcUtils.release(null, ps, conn);  //關閉連線
        }
        return result;
    }

    public void delete() {
        Scanner scan = new Scanner(System.in);
        System.out.println("請輸入學生id");
        int id = scan.nextInt();
        int flag = deleteStudent(id);
        if (flag > 0) {
            System.out.println("刪除成功");
        } else {
            System.out.println("刪除失敗");
        }
    }

    public static void main(String[] args) {
        System.out.println("************ 歡迎進入學生管理系統 *************");
        ManageSystem ms = new ManageSystem();
        boolean b = true;
        while (b) {
            System.out.println("你想進行以下哪項操作");
            System.out.println("1、新增學生   2、更新學生資料   3、學生資訊查詢   4、刪除學生  0、退出");
            Scanner scan = new Scanner(System.in);
            int i = scan.nextInt();
            switch (i) {
                case 1:
                    ms.add();
                    break;
                case 2:
                    ms.update();
                    break;
                case 3:
                    System.out.println();
                    break;
                case 4:
                    ms.delete();
                    break;
                default:
                    System.out.println("沒有該操作選項,請重新來過!");
                    main(args);
                    break;
            }
        }
    }
}

4、properties資料庫檔案自己配置

      資料庫欄位根據學生類建立!