1.
Tạo bảng Student trên MySQL
sql
CREATE DATABASE SchoolDB;
USE SchoolDB;
CREATE TABLE Student (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
age INT NOT NULL,
grade VARCHAR(10)
);
2. Kết nối MySQL trong Java
Ban can them thư vien MySQL Connector vao dư an (thường la [Link]).
3. Thêm dữ liệu để chạy chương trình
USE SchoolDB;
-- Insert sample records into the Student table
INSERT INTO Student (name, age, grade) VALUES ('Alice Johnson', 18, 'A');
INSERT INTO Student (name, age, grade) VALUES ('Bob Smith', 19, 'B');
INSERT INTO Student (name, age, grade) VALUES ('Charlie Brown', 20, 'A');
INSERT INTO Student (name, age, grade) VALUES ('Diana Prince', 21, 'C');
INSERT INTO Student (name, age, grade) VALUES ('Ethan Hunt', 22, 'B');
INSERT INTO Student (name, age, grade) VALUES ('Fiona Gallagher', 18, 'A');
INSERT INTO Student (name, age, grade) VALUES ('George Martin', 23, 'D');
INSERT INTO Student (name, age, grade) VALUES ('Hannah Baker', 19, 'B');
INSERT INTO Student (name, age, grade) VALUES ('Ian Somerhalder', 20, 'A');
INSERT INTO Student (name, age, grade) VALUES ('Jenna Ortega', 22, 'C');
4. Chương trình Java
package mypack;
import [Link].*;
import [Link];
import [Link].*;
import [Link].*;
import [Link].*;
public class StudentCRUDApp {
private JFrame frame;
private JTable table;
private DefaultTableModel model;
1
private JTextField txtName, txtAge, txtGrade, txtId;
private Connection conn;
public StudentCRUDApp() {
initializeDatabase();
initializeUI();
}
private void initializeDatabase() {
try {
conn = [Link]("jdbc:mysql://localhost:3306/SchoolDB", "root",
"12345");
} catch (SQLException e) {
[Link](null, "Database connection failed!");
[Link]();
}
}
private void initializeUI() {
frame = new JFrame("Student CRUD Application");
[Link](JFrame.EXIT_ON_CLOSE);
[Link](800, 600);
[Link](new BorderLayout());
[Link](null); // Center the frame
// Table and Model
model = new DefaultTableModel(new String[]{"ID", "Name", "Age", "Grade"}, 0);
table = new JTable(model);
loadStudents();
[Link](new JScrollPane(table), [Link]);
// Input Panel
JPanel inputPanel = new JPanel(new GridLayout(4, 2, 10, 10));
[Link]([Link]("Student Information"));
[Link](new JLabel("ID:"));
txtId = new JTextField();
[Link](false);
[Link](txtId);
[Link](new JLabel("Name:"));
txtName = new JTextField();
[Link](txtName);
[Link](new JLabel("Age:"));
2
txtAge = new JTextField();
[Link](txtAge);
[Link](new JLabel("Grade:"));
txtGrade = new JTextField();
[Link](txtGrade);
[Link](inputPanel, [Link]);
// Button Panel
JPanel buttonPanel = new JPanel(new FlowLayout([Link], 10, 10));
[Link]([Link]("Actions"));
JButton btnSave = new JButton("Save");
[Link](e -> saveStudent());
[Link](btnSave);
JButton btnUpdate = new JButton("Update");
[Link](e -> updateStudent());
[Link](btnUpdate);
JButton btnDelete = new JButton("Delete");
[Link](e -> deleteStudent());
[Link](btnDelete);
JButton btnClear = new JButton("Clear");
[Link](e -> clearForm());
[Link](btnClear);
[Link](buttonPanel, [Link]);
// Table Row Selection
[Link](new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int selectedRow = [Link]();
[Link]([Link](selectedRow, 0).toString());
[Link]([Link](selectedRow, 1).toString());
[Link]([Link](selectedRow, 2).toString());
[Link]([Link](selectedRow, 3).toString());
}
});
[Link](true);
}
private void loadStudents() {
3
try {
[Link](0);
Statement stmt = [Link]();
ResultSet rs = [Link]("SELECT * FROM Student");
while ([Link]()) {
[Link](new Object[]{
[Link]("id"),
[Link]("name"),
[Link]("age"),
[Link]("grade")
});
}
} catch (SQLException e) {
[Link]();
}
}
private void saveStudent() {
String name = [Link]();
String age = [Link]();
String grade = [Link]();
try {
PreparedStatement stmt = [Link]("INSERT INTO Student (name, age,
grade) VALUES (?, ?, ?)");
[Link](1, name);
[Link](2, [Link](age));
[Link](3, grade);
[Link]();
[Link](frame, "Student added successfully!");
loadStudents();
clearForm();
} catch (SQLException e) {
[Link]();
}
}
private void updateStudent() {
String id = [Link]();
String name = [Link]();
String age = [Link]();
String grade = [Link]();
try {
PreparedStatement stmt = [Link]("UPDATE Student SET name = ?, age =
?, grade = ? WHERE id = ?");
4
[Link](1, name);
[Link](2, [Link](age));
[Link](3, grade);
[Link](4, [Link](id));
[Link]();
[Link](frame, "Student updated successfully!");
loadStudents();
clearForm();
} catch (SQLException e) {
[Link]();
}
}
private void deleteStudent() {
String id = [Link]();
try {
PreparedStatement stmt = [Link]("DELETE FROM Student WHERE id =
?");
[Link](1, [Link](id));
[Link]();
[Link](frame, "Student deleted successfully!");
loadStudents();
clearForm();
} catch (SQLException e) {
[Link]();
}
}
private void clearForm() {
[Link]("");
[Link]("");
[Link]("");
[Link]("");
}
public static void main(String[] args) {
[Link](StudentCRUDApp::new);
}
}