By GokiSoft.com| 20:35 11/06/2020|
Java Advanced

[Share Code] Java Console - Chương trình quản lý sinh viên thêm, sửa, xóa, tìm kiếm, hiển thị Java + MySQL BT1631

[Share Code] Java Console - Chương trình quản lý sinh viên thêm, sửa, xóa, tìm kiếm, hiển thị Java + MySQL

- Thành phần tạo nên dự án Java Swing + MySQL
	- Netbean (Code Java)
	- CSDL >> MySQL >> XAMPP (MySQL)
- Giới thiệu về JDBC là gì?
- Thiết lập môi trường phát triển dự án Java Swing + MySQL (CSDL)
- Chức năng thao tác CSDL & Java Swing
	- Select
	- Insert
	- Update
	- Delete

Bài toán:
	- Viết chương trình quản lý sinh viên
		- Thuộc tính cần quản lý với sinh viên: rollno, tên, ngày sinh, giói tính, email, địa chỉ
		- Chức năng
			- Liệt kê danh sách sinh viên có trong database
			- Thêm sinh viên mới vào csdl
			- Sửa thông tin sinh viên trong csdl
			- Tìm kiếm sinh viên theo tên
			- Xóa sinh viên theo mã rollno

Các bước phát triển 1 dự án
Bước 1: Thiết lập CSDL
	- Tạo CSDL đặt tên là : StudentManagement => Bật XAMPP (start apache & mysql) + tạo csdl trong phpmyadmin
	- Tạo bảng sinh viên gồm các trường : rollno, tên, ngày sinh, giói tính, email, địa chỉ

	create table student (
		rollno varchar(12) primary key,
		fullname varchar(50) not null,
		birthday date,
		gender varchar(10),
		email varchar(150),
		address varchar(200)
	)

B2. Tạo project Java trong Netbean
	- Xem CSDL có những bảng nào => Tạo ra class object tương ứng cho bảng đó
		Chú ý: trường trong bảng sẽ tương ứng vs các biên trong class object
	- Phát triển các chức năng của dự án


#JDBC MySQL Driver trong Java

https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.20/mysql-connector-java-8.0.20.jar

#Main.java


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package lession5;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author teacher
 */
public class Main {
    static Scanner scan = new Scanner(System.in);
    
    public static void main(String[] args) {
        int choose;
        
        do {
            showMenu();
            choose = Integer.parseInt(scan.nextLine());
            
            switch(choose) {
                case 1:
                    showStudents();
                    break;
                case 2:
                    insertStudent();
                    break;
                case 3:
                    updateStudent();
                    break;
                case 4:
                    deleteStudent();
                    break;
                case 5:
                    findStudent();
                    break;
                case 6:
                    System.out.println("Exit!!!");
                    break;
                default:
                    System.out.println("Failed!!!");
                    break;
            }
        } while(choose != 6);
    }
    
    static void showMenu() {
        System.out.println("1. Show Students");
        System.out.println("2. Insert");
        System.out.println("3. Update");
        System.out.println("4. Delete");
        System.out.println("5. Find");
        System.out.println("6. Exit");
        System.out.println("Choose: ");
    }

    private static void showStudents() {
        //Các bước cần làm để lấy dữ liệu trong CSDL ra & hiển thị
        Connection conn = null;
        Statement statement = null;
        try {
            //B1. Tạo kết nối tới CSDL
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/studentmanagement", "root", "");
            
            //B2. Tạo 1 truy vấn tới CSDL
            //B2.1: Viết 1 lệnh sql lấy danh sách sinh viên
            String sql = "select * from student";
            //B2.2: Viết API Java Trúy vấn CSDL
            statement = conn.createStatement();
            //B2.4: Lấy dữ liệu từ CSDL ra
            ResultSet resultSet = statement.executeQuery(sql);
            //B2.5: Đọc dữ liệu từ ResultSet => convert thành cacs object trong Java
            while(resultSet.next()) {
                Student std = new Student(resultSet.getString("rollno"), 
                        resultSet.getString("fullname"), 
                        resultSet.getString("birthday"), 
                        resultSet.getString("gender"), 
                        resultSet.getString("email"), 
                        resultSet.getString("address"));
                std.display();
            }
        } catch (SQLException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            //B3. Close connection
            if(statement != null) {
                try {
                    statement.close();
                } catch (SQLException ex) {
                    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            if(conn != null) {
                try {
                    conn.close();
                } catch (SQLException ex) {
                    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
        //Finish Show Students
    }

    private static void insertStudent() {
        Student student = new Student();
        student.input();
        
        //Các bước cần làm để lấy dữ liệu trong CSDL ra & hiển thị
        Connection conn = null;
        PreparedStatement statement = null;
        try {
            //B1. Tạo kết nối tới CSDL
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/studentmanagement", "root", "");
            
            //B2. Tạo 1 truy vấn tới CSDL
            //B2.1: Viết 1 lệnh sql lấy danh sách sinh viên
            String sql = "insert into student(rollno, fullname, birthday, gender, email, address)"
                    + " values (?, ?, ?, ?, ?, ?)";
            //B2.2: Viết API Java Trúy vấn CSDL
            statement = conn.prepareCall(sql);
            statement.setString(1, student.getRollno());
            statement.setString(2, student.getFullname());
            statement.setString(3, student.getBirthday());
            statement.setString(4, student.getGender());
            statement.setString(5, student.getEmail());
            statement.setString(6, student.getAddress());
            //B2.4: Lấy dữ liệu từ CSDL ra
            statement.execute();
        } catch (SQLException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            //B3. Close connection
            if(statement != null) {
                try {
                    statement.close();
                } catch (SQLException ex) {
                    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            if(conn != null) {
                try {
                    conn.close();
                } catch (SQLException ex) {
                    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
        //Finish Show Students
    }

    private static void updateStudent() {
        System.out.println("Sửa thông tin sinh vien theo MSV");
        Student student = new Student();
        student.input();
        
        //Các bước cần làm để lấy dữ liệu trong CSDL ra & hiển thị
        Connection conn = null;
        PreparedStatement statement = null;
        try {
            //B1. Tạo kết nối tới CSDL
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/studentmanagement", "root", "");
            
            //B2. Tạo 1 truy vấn tới CSDL
            //B2.1: Viết 1 lệnh sql lấy danh sách sinh viên
            String sql = "update student set fullname = ?, birthday = ?, gender = ?, email = ?, address = ?"
                    + " where rollno = ?";
            //B2.2: Viết API Java Trúy vấn CSDL
            statement = conn.prepareCall(sql);
            statement.setString(1, student.getFullname());
            statement.setString(2, student.getBirthday());
            statement.setString(3, student.getGender());
            statement.setString(4, student.getEmail());
            statement.setString(5, student.getAddress());
            statement.setString(6, student.getRollno());
            //B2.4: Lấy dữ liệu từ CSDL ra
            statement.execute();
        } catch (SQLException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            //B3. Close connection
            if(statement != null) {
                try {
                    statement.close();
                } catch (SQLException ex) {
                    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            if(conn != null) {
                try {
                    conn.close();
                } catch (SQLException ex) {
                    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
        //Finish Show Students
    }

    private static void deleteStudent() {
        System.out.println("Nhap MSV can xoa: ");
        String rollNo = scan.nextLine();
        
        
        //Các bước cần làm để lấy dữ liệu trong CSDL ra & hiển thị
        Connection conn = null;
        PreparedStatement statement = null;
        try {
            //B1. Tạo kết nối tới CSDL
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/studentmanagement", "root", "");
            
            //B2. Tạo 1 truy vấn tới CSDL
            //B2.1: Viết 1 lệnh sql lấy danh sách sinh viên
            String sql = "delete from student where rollno = ?";
            //B2.2: Viết API Java Trúy vấn CSDL
            statement = conn.prepareCall(sql);
            statement.setString(1, rollNo);
            //B2.4: Lấy dữ liệu từ CSDL ra
            statement.execute();
        } catch (SQLException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            //B3. Close connection
            if(statement != null) {
                try {
                    statement.close();
                } catch (SQLException ex) {
                    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            if(conn != null) {
                try {
                    conn.close();
                } catch (SQLException ex) {
                    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
        //Finish Show Students
    }

    private static void findStudent() {
        System.out.println("Nhap sinh vien can tim kiem: ");
        String fullname = scan.nextLine();
        
        //Các bước cần làm để lấy dữ liệu trong CSDL ra & hiển thị
        Connection conn = null;
        PreparedStatement statement = null;
        try {
            //B1. Tạo kết nối tới CSDL
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/studentmanagement", "root", "");
            
            //B2. Tạo 1 truy vấn tới CSDL
            //B2.1: Viết 1 lệnh sql lấy danh sách sinh viên
            String sql = "select * from student where fullname like ?";
            //B2.2: Viết API Java Trúy vấn CSDL
            statement = conn.prepareStatement(sql);
            statement.setString(1, "%"+fullname+"%");
            //B2.4: Lấy dữ liệu từ CSDL ra
            ResultSet resultSet = statement.executeQuery();
            //B2.5: Đọc dữ liệu từ ResultSet => convert thành cacs object trong Java
            while(resultSet.next()) {
                Student std = new Student(resultSet.getString("rollno"), 
                        resultSet.getString("fullname"), 
                        resultSet.getString("birthday"), 
                        resultSet.getString("gender"), 
                        resultSet.getString("email"), 
                        resultSet.getString("address"));
                std.display();
            }
        } catch (SQLException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            //B3. Close connection
            if(statement != null) {
                try {
                    statement.close();
                } catch (SQLException ex) {
                    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
            if(conn != null) {
                try {
                    conn.close();
                } catch (SQLException ex) {
                    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
        //Finish Show Students
    }
}


#Student.java


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package lession5;

import java.util.Scanner;

/**
 *
 * @author teacher
 */
public class Student {
    String rollno, fullname, birthday, gender, email, address;

    public Student() {
    }

    public Student(String rollno, String fullname, String birthday, String gender, String email, String address) {
        this.rollno = rollno;
        this.fullname = fullname;
        this.birthday = birthday;
        this.gender = gender;
        this.email = email;
        this.address = address;
    }

    public String getRollno() {
        return rollno;
    }

    public void setRollno(String rollno) {
        this.rollno = rollno;
    }

    public String getFullname() {
        return fullname;
    }

    public void setFullname(String fullname) {
        this.fullname = fullname;
    }

    public String getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

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

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "Student{" + "rollno=" + rollno + ", fullname=" + fullname + ", birthday=" + birthday + ", gender=" + gender + ", email=" + email + ", address=" + address + '}';
    }
    
    public void display() {
        System.out.println(this);
    }
    
    public void input() {
        Scanner scan = new Scanner(System.in);
        System.out.println("Nhap MSV :");
        rollno = scan.nextLine();
        System.out.println("Nhap Ho va Ten :");
        fullname = scan.nextLine();
        System.out.println("Nhap Ngay Sinh (YYYY-MM-DD) :");
        birthday = scan.nextLine();
        System.out.println("Nhap Gioi Tinh :");
        gender = scan.nextLine();
        System.out.println("Nhap Email : ");
        email = scan.nextLine();
        System.out.println("Nhap Dia Chi :");
        address = scan.nextLine();
    }
}


Liên kết rút gọn:

https://gokisoft.com/1631

Bình luận