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
[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();
}
}
Tags:
Phản hồi từ học viên
5
(Dựa trên đánh giá ngày hôm nay)