- Biết cách khai báo biến, sử dụng các biến và thực hiện được các chức năng như: o Hiển thị dữ liệu trong cơ sở dữ liệu lên table trong Java o Thêm dữ liệu từ giao diện vào cơ sở dữ liệu
Tổng quan
Giới thiệu đề tài
Phần mềm quản lý điểm sinh viên để quản lý thông tin nhân sự Giúp cho người quản lý dễ dàng xem và cập nhật nhân viên.
Các kiến thức sử dụng trong bài
- Đã biết cách cài đặt và cấu hình SQL Server
- Biết cách tạo bảng và liên kết giữa các bảng trong SQL Server.
Để làm việc hiệu quả với cơ sở dữ liệu, bạn cần nắm vững các câu lệnh truy vấn cơ bản như Select, Insert, Update và Delete Câu lệnh Select giúp lấy dữ liệu từ cơ sở dữ liệu, trong khi Insert cho phép ghi dữ liệu mới Để cập nhật thông tin, bạn sử dụng câu lệnh Update, và để xóa bản ghi, câu lệnh Delete sẽ được áp dụng Ngoài ra, câu lệnh Select có thể kết hợp với điều kiện Where để lọc dữ liệu theo yêu cầu.
- Biết cách sử dụng thư viện để kết nối với SQL Server.
- Biết cách thiết kế giao diện chương trình.
Biết cách khai báo và sử dụng biến trong Java là rất quan trọng để thực hiện các chức năng như hiển thị dữ liệu từ cơ sở dữ liệu lên bảng, thêm dữ liệu từ giao diện vào cơ sở dữ liệu, cập nhật thông tin của bản ghi và xóa một bản ghi trong cơ sở dữ liệu.
Phân tích thiết kế
Phân tích và thiết kế hệ thống
Phần mềm quản lý nhân sự gồm các chức năng:
- Quản lý nhân viên: Quản lý thông tin nhân viên theo chức vụ và cửa hàng.
- Quản lý chức vụ: Quản lý chức vụ của các nhân viên theo lương.
- Quản lý cửa hàng: Quản lý các cửa hàng.
- Quản lý lương: Quản lý lương của các nhân viên theo bậc lương.
- Quản lý hợp đồng lao động: Quản lý hợp đồng của từng nhân viên.
2.1.2 Thiết kế cơ sở dữ liệu
- Diagram cơ dử dữ liệu:
Bảng nhân viên được thiết kế với các trường dữ liệu bao gồm mã nhân viên (MaNhanVien), họ tên (HoTen), ngày sinh (NgaySinh), quê quán (QueQuan), giới tính (GioiTinh), dân tộc (DanToc), số điện thoại (SoDienThoai), mã cửa hàng (MaCuaHang), mã chức vụ (MaChucVu) và bậc lương (BacLuong) Trong đó, mã nhân viên là khóa chính, đảm bảo tính duy nhất cho từng bản ghi Các trường họ tên và ngày sinh là bắt buộc, giúp quản lý thông tin nhân viên một cách đầy đủ và chính xác.
) o Bảng chức vụ create table ChucVu(
TenChucVu nvarchar(20) not null, constraint pk_ChucVu primary key(MaChucVu),
) o Bảng cửa hàng create table CuaHang(
SoDienThoaiCuaHang varchar(11), constraint pk_CuaHang primary key(MaCuaHang),
) o Bảng lương create table Luong(
LuongPhuCap decimal(9,0), constraint pk_Luong primary key(BacLuong),
) o Bảng hợp đồng lao động create table HopDongLaoDong(
DenNgay date, constraint pk_HopDongLaoDong primary key(MaChucVu,MaNhanVien),
) o Ràng buộc của các bảng alter table NhanVien add constraint fk_NhanVien_CuaHang foreign key(MaCuaHang) references
CuaHang(MaCuaHang) alter table NhanVien add constraint fk_NhanVien_Luong foreign key(BacLuong) references
The SQL command modifies the HopDongLaoDong table by adding foreign key constraints Specifically, it establishes a foreign key relationship between the MaNhanVien column in the HopDongLaoDong table and the MaNhanVien column in the NhanVien table Additionally, it creates a foreign key constraint linking the MaChucVu column in the HopDongLaoDong table to the MaChucVu column in the ChucVu table.
Xây dựng các chức năng
Mô tả chỉ tiết xây dựng các chức năng trong phần mềm quản lý nhân sự.
Em thiết kế 5 chức năng chính của phần mềm gồm:
Quản lý Nhân Viên bao gồm các chức năng quan trọng như liệt kê danh sách nhân viên và hiển thị dữ liệu trên bảng Hệ thống cho phép thêm mới nhân viên với các thông tin cần thiết như mã nhân viên, họ và tên, ngày sinh, quê quán, giới tính, dân tộc, số điện thoại, mã cửa hàng, mã chức vụ và bậc lương Ngoài ra, người dùng có thể sửa thông tin của nhân viên đã có trong cơ sở dữ liệu và xóa thông tin về nhân viên khi cần thiết.
Quản lý Chức Vụ bao gồm việc liệt kê danh sách chức vụ và hiển thị dữ liệu trên bảng Người dùng có thể thêm mới một chức vụ bằng cách nhập mã và tên chức vụ Hệ thống cũng cho phép sửa đổi thông tin của các chức vụ đã có trong cơ sở dữ liệu Ngoài ra, người dùng có thể xóa thông tin về một chức vụ không còn cần thiết.
Quản lý cửa hàng hiệu quả bao gồm việc liệt kê danh sách cửa hàng và hiển thị trên bảng Người dùng có thể thêm mới cửa hàng với các thông tin cần thiết như mã cửa hàng, tên cửa hàng, địa chỉ và số điện thoại Ngoài ra, hệ thống cho phép sửa đổi thông tin cửa hàng đã có trong cơ sở dữ liệu và xóa cửa hàng nếu cần thiết.
Quản lý lương bao gồm các chức năng như liệt kê danh sách lương và hiển thị trên bảng, thêm mới cửa hàng với thông tin về bậc lương, lương cơ bản và lương phụ cấp, sửa đổi thông tin lương đã có trong cơ sở dữ liệu, và xóa loại lương khi cần thiết.
Quản lý hợp đồng lao động bao gồm việc liệt kê danh sách hợp đồng của từng nhân viên trong bảng, thêm mới hợp đồng với các thông tin như mã chức vụ, mã nhân viên, loại hợp đồng, và thời gian hiệu lực từ ngày đến ngày Ngoài ra, người dùng có thể sửa đổi thông tin hợp đồng đã có trong cơ sở dữ liệu và xóa hợp đồng khi cần thiết.
Chương trình phần mềm
Giao diện
- Giao diện bảng nhân viên
- Giao diện bảng chức vụ
- Giao diện bảng hợp đồng lao động
- Giao diện bảng cửa hàng
Một số đoạn code chính (copy một số đoạn code làm mẫu)
- Code của bảng kết nối dữ liệu, lớp Menu, lớp NhanVien, lớp ChucVu, lớp CuaHang, lớp Luong, lớp HopDongLaoDong, lớp Run để chạy chương trình
- String url "jdbc:sqlserver://localhost:1433;databaseName=QLNSJAVA;encr yptse";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver
- return DriverManager.getConnection(url, username, password);
- public class Menu extends JFrame {
- setDefaultCloseOperation(JFrame EXIT_ON_CLOSE );
- contentPane.setLayout(new GridBagLayout()); // Sử dụng GridBagLayout để định vị các thành phần
- JLabel titleLabel = new JLabel("Menu");
- titleLabel.setFont(new Font("Arial", Font BOLD ,
- // Label tên "by Nguyễn Anh Tuấn aka cigatuan"
- JLabel authorLabel = new JLabel("by Nguyễn Anh Tuấn aka cigatuan");
- authorLabel.setFont(new Font("Arial", Font ITALIC , 14));
- createButton("Hợp Đồng Lao Động", actionListener);
- private void createButton(String buttonText,
- JButton button = new JButton(buttonText);
- button.setFont(new Font("Arial", Font PLAIN , 18));
- button.setForeground(Color BLACK ); // Đặt màu chữ thành đen
-Bảng nhân viên public class NhanVien extends JFrame { private JPanel contentPane; private JTable table_NhanVien; private DefaultTableModel model; private void ShowDuLieu_NhanVien() {
String sql = "SELECT MaNhanVien, HoTen, NgaySinh,
QueQuan, GioiTinh, DanToc, SoDienThoai, MaCuaHang, MaChucVu,
BacLuong FROM NhanVien"; try (Connection connection DatabaseConnection.getConnection();
PreparedStatement preparedStatement connection.prepareStatement(sql);
ResultSet resultSet preparedStatement.executeQuery()) { model.setRowCount(0); // Xóa dữ liệu hiện tại từ bảng while (resultSet.next()) {
The code retrieves employee data from a result set, including their ID, full name, date of birth, hometown, gender, ethnicity, phone number, store ID, position ID, and salary grade.
String sql = "SELECT MaNhanVien, HoTen, NgaySinh,
QueQuan, GioiTinh, DanToc, SoDienThoai, MaCuaHang, MaChucVu,
BacLuong FROM NhanVien"; try (Connection connection DatabaseConnection.getConnection();
PreparedStatement preparedStatement connection.prepareStatement(sql);
ResultSet resultSet preparedStatement.executeQuery()) { model.setRowCount(0); // Xóa dữ liệu hiện tại từ bảng while (resultSet.next()) {
The retrieved data includes employee details such as Employee ID, Full Name, Date of Birth, Hometown, Gender, Ethnicity, Phone Number, Store ID, Position ID, and Salary Grade.
} public NhanVien() { setDefaultCloseOperation(JFrame DISPOSE_ON_CLOSE ); setBounds(100, 100, 1175, 620); setLocationRelativeTo(null); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); model = new DefaultTableModel( new Object[][]{}, new String[]{
"QueQuan", "GioiTinh", "DanToc", "SoDienThoai", "MaCuaHang",
); table_NhanVien = new JTable(model);
JScrollPane(table_NhanVien); // Đặt JTable trong JScrollPane scrollPane.setBounds(53, 56, 1060, 289); contentPane.add(scrollPane);
JButton btnAddNV = new JButton("Thêm"); btnAddNV.addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent e) { themNhanVien();
}); btnAddNV.setBounds(53, 370, 100, 30); contentPane.add(btnAddNV);
JButton btnEditNV = new JButton("Sửa"); btnEditNV.addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent e) { suaNhanVien();
}); btnEditNV.setBounds(163, 370, 100, 30); contentPane.add(btnEditNV);
JButton btnDeleteNV = new JButton("Xóa"); btnDeleteNV.addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent e) { xoaNhanVien();
}); btnDeleteNV.setBounds(273, 370, 100, 30); contentPane.add(btnDeleteNV);
// Lấy Mã Nhân Viên cần sửa từ người dùng
String maNhanVienToUpdate JOptionPane.showInputDialog(null, "Nhập Mã Nhân Viên cần sửa:");
// Kiểm tra xem mã nhân viên có tồn tại không if (kiemTraTonTai(maNhanVienToUpdate)) {
// Nếu tồn tại, lấy thông tin mới từ người dùng
String HoTenMoi = JOptionPane.showInputDialog(null,
String NgaySinhMoi JOptionPane.showInputDialog(null, "Nhập Ngày Sinh mới:");
String QueQuanMoi = JOptionPane.showInputDialog(null,
String GioiTinhMoi = JOptionPane.showInputDialog(null,
String DanTocMoi = JOptionPane.showInputDialog(null,
String SoDienThoaiMoi JOptionPane.showInputDialog(null, "Nhập Số Điện Thoại mới:");
String MaCuaHangMoi = JOptionPane.showInputDialog(null,
"Nhập Mã Cửa Hàng mới:");
String MaChucVuMoi = JOptionPane.showInputDialog(null,
"Nhập Mã Chức Vụ mới:");
String BacLuongMoi = JOptionPane.showInputDialog(null,
// Thực hiện truy vấn SQL để cập nhật thông tin nhân viên
String sql = "UPDATE NhanVien SET HoTen=?,
NgaySinh=?, QueQuan=?, GioiTinh=?, DanToc=?, SoDienThoai=?,
MaCuaHang=?, MaChucVu=?, BacLuong=? WHERE MaNhanVien=? "; try (Connection connection DatabaseConnection.getConnection();
PreparedStatement preparedStatement connection.prepareStatement(sql)) {
To set the values for the parameters in a prepared statement, the following method calls are made: preparedStatement.setString(1, FullNameNew); preparedStatement.setString(2, DateOfBirthNew); preparedStatement.setString(3, HometownNew); preparedStatement.setString(4, GenderNew); preparedStatement.setString(5, EthnicityNew); preparedStatement.setString(6, PhoneNumberNew); preparedStatement.setString(7, StoreIDNew); preparedStatement.setString(8, PositionIDNew); preparedStatement.setString(9, SalaryGradeNew); and preparedStatement.setString(10, employeeIDToUpdate).
// Thực hiện truy vấn UPDATE int affectedRows preparedStatement.executeUpdate(); if (affectedRows > 0) {
JOptionPane.showMessageDialog(null, "Sửa thông tin nhân viên thành công.");
// Làm mới bảng hiển thị dữ liệu nhân viên sau khi sửa
JOptionPane.showMessageDialog(null, "Không tìm thấy nhân viên có mã " + maNhanVienToUpdate, "Thông báo",
JOptionPane.showMessageDialog(null, "Đã xảy ra lỗi khi sửa thông tin nhân viên.", "Lỗi",
JOptionPane.showMessageDialog(null, "Không tìm thấy nhân viên có mã " + maNhanVienToUpdate, "Thông báo",
// Kiểm tra xem một nhân viên có tồn tại không private boolean kiemTraTonTai(String maNhanVien) {
String sql = "SELECT * FROM NhanVien WHERE MaNhanVien
= ?"; try (Connection connection DatabaseConnection.getConnection();
PreparedStatement preparedStatement connection.prepareStatement(sql)) { preparedStatement.setString(1, maNhanVien); try (ResultSet resultSet preparedStatement.executeQuery()) { return resultSet.next(); // Trả về true nếu có ít nhất một kết quả
String maNhanVienToDelete JOptionPane.showInputDialog(null, "Nhập Mã Nhân Viên cần xóa:"); String sql = "DELETE FROM NhanVien WHERE MaNhanVien
= ?"; try (Connection connection DatabaseConnection.getConnection();
PreparedStatement preparedStatement connection.prepareStatement(sql)) { preparedStatement.setString(1, maNhanVienToDelete);
// Thực hiện truy vấn DELETE int affectedRows = preparedStatement.executeUpdate(); if (affectedRows > 0) {
JOptionPane.showMessageDialog(null, "Xóa nhân viên thành công.");
// Làm mới bảng hiển thị dữ liệu nhân viên sau khi xóa
JOptionPane.showMessageDialog(null, "Không tìm thấy nhân viên có mã " + maNhanVienToDelete, "Thông báo",
JOptionPane.showMessageDialog(null, "Đã xảy ra lỗi khi xóa nhân viên.", "Lỗi", JOptionPane ERROR_MESSAGE );
// Tạo một hộp thoại (JDialog) hoặc sử dụng JOptionPane để lấy dữ liệu nhập từ người dùng cho nhân viên mới
String MaNhanVien = JOptionPane.showInputDialog(null,
String HoTen = JOptionPane.showInputDialog(null, "Nhập
String NgaySinh = JOptionPane.showInputDialog(null,
String QueQuan = JOptionPane.showInputDialog(null,
String GioiTinh = JOptionPane.showInputDialog(null,
String DanToc = JOptionPane.showInputDialog(null, "Nhập Dân Tộc:");
String SoDienThoai = JOptionPane.showInputDialog(null,
String MaCuaHang = JOptionPane.showInputDialog(null,
String MaChucVu = JOptionPane.showInputDialog(null,
String BacLuong = JOptionPane.showInputDialog(null,
// Thực hiện truy vấn SQL để thêm nhân viên mới vào cơ sở dữ liệu
String sql = "INSERT INTO NhanVien (MaNhanVien, HoTen, NgaySinh, QueQuan, GioiTinh, DanToc, SoDienThoai, MaCuaHang,
MaChucVu, BacLuong) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; try (Connection connection DatabaseConnection.getConnection();
PreparedStatement preparedStatement connection.prepareStatement(sql)) {
To set the values for the parameters in the prepared statement, use the following code: `preparedStatement.setString(1, MaNhanVien);` for the employee ID, `preparedStatement.setString(2, HoTen);` for the full name, `preparedStatement.setString(3, NgaySinh);` for the date of birth, `preparedStatement.setString(4, QueQuan);` for the hometown, `preparedStatement.setString(5, GioiTinh);` for gender, `preparedStatement.setString(6, DanToc);` for ethnicity, `preparedStatement.setString(7, SoDienThoai);` for the phone number, `preparedStatement.setString(8, MaCuaHang);` for the store ID, `preparedStatement.setString(9, MaChucVu);` for the position ID, and `preparedStatement.setString(10, BacLuong);` for the salary grade.
// Thực hiện truy vấn INSERT preparedStatement.executeUpdate();
JOptionPane.showMessageDialog(null, "Thêm nhân viên mới thành công.");
// Làm mới bảng hiển thị dữ liệu nhân viên sau khi thêm
JOptionPane.showMessageDialog(null, "Đã xảy ra lỗi khi thêm nhân viên mới.", "Lỗi", JOptionPane ERROR_MESSAGE );
-Bảng Chức Vụ contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); model = new DefaultTableModel( new Object[][]{}, new String[]{
); table_ChucVu = new JTable(model);
JScrollPane scrollPane = new JScrollPane(table_ChucVu); // Đặt JTable trong JScrollPane scrollPane.setBounds(53, 56, 1060, 289); contentPane.add(scrollPane);
JButton btnAddNV = new JButton("Thêm"); btnAddNV.addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent e) { themChucVu();
}); btnAddNV.setBounds(53, 370, 100, 30); contentPane.add(btnAddNV);
JButton btnEditNV = new JButton("Sửa"); btnEditNV.addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent e) { suaChucVu();
}); btnEditNV.setBounds(163, 370, 100, 30); contentPane.add(btnEditNV);
JButton btnDeleteNV = new JButton("Xóa"); btnDeleteNV.addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent e) { xoaChucVu();
}); btnDeleteNV.setBounds(273, 370, 100, 30); contentPane.add(btnDeleteNV);
// Lấy Mã chức vụ cần sửa
String maChucVuSua = JOptionPane.showInputDialog(null,
"Nhập Mã Chức Vụ cần sửa:");
// Kiểm tra xem mã chức vụ có tồn tại không if (kiemTraTonTai(maChucVuSua)) {
// Nếu tồn tại, lấy thông tin mới từ người dùng
String MaChucVuMoi JOptionPane.showInputDialog(null, "Nhập Mã Chức Vụ mới:");
String TenChucVuMoi JOptionPane.showInputDialog(null, "Nhập Tên Chức Vụ mới:");
// Thực hiện truy vấn SQL để cập nhật thông tin chức vụ
String sql = "UPDATE ChucVu SET TenChucVu=? WHERE
MaChucVu=? "; try (Connection connection DatabaseConnection.getConnection();
PreparedStatement preparedStatement connection.prepareStatement(sql)) {
// Thiết lập giá trị cho các tham số của truy vấn preparedStatement.setString(1, TenChucVuMoi); preparedStatement.setString(2, maChucVuSua);
// Thực hiện truy vấn UPDATE int affectedRows preparedStatement.executeUpdate(); if (affectedRows > 0) {
JOptionPane.showMessageDialog(null, "Sửa thông tin chức vụ thành công.");
// Làm mới bảng hiển thị dữ liệu chức vụ sau khi sửa
JOptionPane.showMessageDialog(null, "Không tìm thấy chức vụ có mã " + maChucVuSua, "Thông báo",
JOptionPane.showMessageDialog(null, "Đã xảy ra lỗi khi sửa thông tin chức vụ.", "Lỗi",
JOptionPane.showMessageDialog(null, "Không tìm thấy chức vụ có mã " + maChucVuSua, "Thông báo",
// Kiểm tra xem mã chức vụ có tồn tại không private boolean kiemTraTonTai(String maChucVu) {
String sql = "SELECT * FROM ChucVu WHERE MaChucVu = ?"; try (Connection connection DatabaseConnection.getConnection();
PreparedStatement preparedStatement connection.prepareStatement(sql)) { preparedStatement.setString(1, maChucVu); try (ResultSet resultSet preparedStatement.executeQuery()) { return resultSet.next(); // Trả về true nếu có ít nhất một kết quả
String maChucVuXoa = JOptionPane.showInputDialog(null,
"Nhập Mã Chức Vụ cần xóa:");
String sql = "DELETE FROM ChucVu WHERE MaChucVu = ?"; try (Connection connection DatabaseConnection.getConnection();
PreparedStatement preparedStatement connection.prepareStatement(sql)) { preparedStatement.setString(1, maChucVuXoa);
// Thực hiện truy vấn DELETE int affectedRows = preparedStatement.executeUpdate(); if (affectedRows > 0) {
JOptionPane.showMessageDialog(null, "Xóa cửa hàng thành công.");
// Làm mới bảng hiển thị dữ liệu Chức Vụ sau khi xóa
JOptionPane.showMessageDialog(null, "Không tìm thấy Chức Vụ có mã " + maChucVuXoa, "Thông báo",
JOptionPane.showMessageDialog(null, "Đã xảy ra lỗi khi xóa chức vụ ", "Lỗi", JOptionPane ERROR_MESSAGE );
// Tạo một hộp thoại (JDialog) hoặc sử dụng JOptionPane để lấy dữ liệu nhập từ người dùng cho chức vụ mới
String MaChucVu = JOptionPane.showInputDialog(null,
String TenChucVu = JOptionPane.showInputDialog(null,
// Thực hiện truy vấn SQL để thêm chức vụ mới vào cơ sở dữ liệu
String sql = "INSERT INTO ChucVu (MaChucVu, TenChucVu) VALUES (?, ?)"; try (Connection connection DatabaseConnection.getConnection();
PreparedStatement preparedStatement connection.prepareStatement(sql)) {
// Thiết lập giá trị cho các tham số của truy vấn preparedStatement.setString(1, MaChucVu); preparedStatement.setString(2, TenChucVu); preparedStatement.executeUpdate();
JOptionPane.showMessageDialog(null, "Thêm chức vụ mới thành công.");
// Làm mới bảng hiển thị dữ liệu chức vụ sau khi thêm
JOptionPane.showMessageDialog(null, "Đã xảy ra lỗi khi thêm chức vụ mới.", "Lỗi", JOptionPane ERROR_MESSAGE );
- public class CuaHang extends JFrame {
- String sql = "SELECT MaCuaHang, TenCuaHang, DiaChi,SoDienThoaiCuaHang FROM CuaHang";
- try (Connection connection DatabaseConnection.getConnection();
- PreparedStatement preparedStatement connection.prepareStatement(sql);
- model.setRowCount(0); // Xóa dữ liệu hiện tại từ bảng
- String sql = "SELECT MaCuaHang, TenCuaHang, DiaChi, SoDienThoaiCuaHang FROM CuaHang";
- try (Connection connection DatabaseConnection.getConnection();
- PreparedStatement preparedStatement connection.prepareStatement(sql);
- model.setRowCount(0); // Xóa dữ liệu hiện tại từ bảng
- setDefaultCloseOperation(JFrame DISPOSE_ON_CLOSE );
- table_CuaHang = new JTable(model);
JScrollPane(table_CuaHang); // Đặt JTable trong JScrollPane
- JButton btnAddNV = new JButton("Thêm");
- JButton btnEditNV = new JButton("Sửa");
- JButton btnDeleteNV = new JButton("Xóa");
- // Lấy Mã cửa hàng cần sửa
- String maCuaHangSua JOptionPane.showInputDialog(null, "Nhập Mã Cửa Hàng cần sửa:");
- // Kiểm tra xem mã cửa hàng có tồn tại không
- // Nếu tồn tại, lấy thông tin mới từ người dùng
- String MaCuaHangMoi JOptionPane.showInputDialog(null, "Nhập Mã Cửa Hàng mới:");
- String TenCuaHangMoi JOptionPane.showInputDialog(null, "Nhập Tên Cửa Hàng mới:");
- String DiaChiMoi JOptionPane.showInputDialog(null, "Nhập Địa Chỉ mới:");
- String SoDienThoaiCuaHangMoi JOptionPane.showInputDialog(null, "Nhập Số Điện Thoại Cửa Hàng mới:");
- // Thực hiện truy vấn SQL để cập nhật thông tin cửa hàng
- String sql = "UPDATE CuaHang SET TenCuaHang=?, DiaChi=?, SoDienThoaiCuaHang=? WHERE MaCuaHang=? ";
- try (Connection connection DatabaseConnection.getConnection();
- PreparedStatement preparedStatement connection.prepareStatement(sql)) {
- // Thiết lập giá trị cho các tham số của truy vấn
- // Thực hiện truy vấn UPDATE
"Sửa thông tin hợp đồng thành công.");
- // Làm mới bảng hiển thị dữ liệu cửa hàng sau khi sửa
"Không tìm thấy nhân viên có mã " + maCuaHangSua, "Thông báo", JOptionPane WARNING_MESSAGE );
- JOptionPane.showMessageDialog(null, "Đã xảy ra lỗi khi sửa thông tin hợp đồng.", "Lỗi",
- JOptionPane.showMessageDialog(null, "Không tìm thấy nhân viên có mã " + maCuaHangSua, "Thông báo",
- // Kiểm tra xem mã cửa hàng có tồn tại không
- private boolean kiemTraTonTai(String maCuaHang) {
- String sql = "SELECT * FROM CuaHang WHERE MaCuaHang
- try (Connection connection DatabaseConnection.getConnection();
- PreparedStatement preparedStatement connection.prepareStatement(sql)) {
- try (ResultSet resultSet preparedStatement.executeQuery()) {
- return resultSet.next(); // Trả về true nếu có ít nhất một kết quả
- String maCuaHangXoa JOptionPane.showInputDialog(null, "Nhập Mã Cửa Hàng cần xóa:");
- String sql = "DELETE FROM CuaHang WHERE MaCuaHang ?";
- try (Connection connection DatabaseConnection.getConnection();
- PreparedStatement preparedStatement connection.prepareStatement(sql)) {
- // Thực hiện truy vấn DELETE
- JOptionPane.showMessageDialog(null, "Xóa cửa hàng thành công.");
- // Làm mới bảng hiển thị dữ liệu Cua Hang sau khi xóa
- JOptionPane.showMessageDialog(null, "Không tìm thấy Cửa Hàng có mã " + maCuaHangXoa, "Thông báo",
- JOptionPane.showMessageDialog(null, "Đã xảy ra lỗi khi xóa cửa hàng ", "Lỗi", JOptionPane ERROR_MESSAGE );
- // Tạo một hộp thoại (JDialog) hoặc sử dụng
JOptionPane để lấy dữ liệu nhập từ người dùng cho cửa hàng mới
- String MaCuaHang JOptionPane.showInputDialog(null, "Nhập Mã cửa hàng:");
- String TenCuaHang JOptionPane.showInputDialog(null, "Nhập tên cửa hàng:");
- String DiaChi = JOptionPane.showInputDialog(null,
- String SoDienThoaiCuaHang JOptionPane.showInputDialog(null, "Nhập Số điện thoại cửa hàng:");
- // Thực hiện truy vấn SQL để thêm cửa hàng mới vào cơ sở dữ liệu
- String sql = "INSERT INTO CuaHang (MaCuaHang,
- try (Connection connection DatabaseConnection.getConnection();
- PreparedStatement preparedStatement connection.prepareStatement(sql)) {
- // Thiết lập giá trị cho các tham số của truy vấn
- JOptionPane.showMessageDialog(null, "Thêm cửa hàng mới thành công.");
- // Làm mới bảng hiển thị dữ liệu cửa hàng sau khi thêm
- JOptionPane.showMessageDialog(null, "Đã xảy ra lỗi khi thêm cửa hàng mới.", "Lỗi",
- Bảng Hợp đồng lao động
- table_HopDongLaoDong = new JTable(model);
JScrollPane(table_HopDongLaoDong); // Đặt JTable trong
- JButton btnAddNV = new JButton("Thêm");
- JButton btnEditNV = new JButton("Sửa");
- JButton btnDeleteNV = new JButton("Xóa");
- // Lấy Mã Nhân Viên cần sửa từ người dùng
- String maNhanVienSua JOptionPane.showInputDialog(null, "Nhập Mã Nhân Viên cần sửa:");
- // Kiểm tra xem mã nhân viên có tồn tại không
- // Nếu tồn tại, lấy thông tin mới từ người dùng
- String MaChucVuMoi JOptionPane.showInputDialog(null, "Nhập Mã Chức Vụ mới:");
- String LoaiHopDongMoi JOptionPane.showInputDialog(null, "Nhập Loại Hợp Đồng mới:");
- String TuNgayMoi JOptionPane.showInputDialog(null, "Nhập Từ Ngày mới:");
- String DenNgayMoi JOptionPane.showInputDialog(null, "Nhập Đến Ngày mới:");
- // Thực hiện truy vấn SQL để cập nhật thông tin hợp đồng
- String sql = "UPDATE HopDongLaoDong SET
MaChucVu=?, LoaiHopDong=?, TuNgay=?, DenNgay=? WHERE
- try (Connection connection DatabaseConnection.getConnection();
- PreparedStatement preparedStatement connection.prepareStatement(sql)) {
- // Thiết lập giá trị cho các tham số của truy vấn
- // Thực hiện truy vấn UPDATE
"Sửa thông tin hợp đồng thành công.");
- // Làm mới bảng hiển thị dữ liệu nhân viên sau khi sửa
"Không tìm thấy nhân viên có mã " + maNhanVienSua, "Thông báo", JOptionPane WARNING_MESSAGE );
- JOptionPane.showMessageDialog(null, "Đã xảy ra lỗi khi sửa thông tin hợp đồng.", "Lỗi",
- JOptionPane.showMessageDialog(null, "Không tìm thấy nhân viên có mã " + maNhanVienSua, "Thông báo",
- // Kiểm tra xem một nhân viên có tồn tại không
- private boolean kiemTraTonTai(String maNhanVien) {
- String sql = "SELECT * FROM HopDongLaoDong WHERE
- try (Connection connection DatabaseConnection.getConnection();
- PreparedStatement preparedStatement connection.prepareStatement(sql)) {
- try (ResultSet resultSet preparedStatement.executeQuery()) {
- return resultSet.next(); // Trả về true nếu có ít nhất một kết quả
- String maNhanVienXoa JOptionPane.showInputDialog(null, "Nhập Mã Nhân Viên cần xóa:");
- String sql = "DELETE FROM HopDongLaoDong WHERE
- try (Connection connection DatabaseConnection.getConnection();
- PreparedStatement preparedStatement connection.prepareStatement(sql)) {
- // Thực hiện truy vấn DELETE
- JOptionPane.showMessageDialog(null, "Xóa nhân viên thành công.");
- // Làm mới bảng hiển thị dữ liệu nhân viên sau khi xóa
- JOptionPane.showMessageDialog(null, "Không tìm thấy nhân viên có mã " + maNhanVienXoa, "Thông báo",
- JOptionPane.showMessageDialog(null, "Đã xảy ra lỗi khi xóa hợp đồng ", "Lỗi", JOptionPane ERROR_MESSAGE );
- // Tạo một hộp thoại (JDialog) hoặc sử dụng
JOptionPane để lấy dữ liệu nhập từ người dùng cho hợp đồng mới
- String MaChucVu JOptionPane.showInputDialog(null, "Nhập Mã Chức Vụ:");
- String MaNhanVien JOptionPane.showInputDialog(null, "Nhập Mã Nhân Viênn:");
- String LoaiHopDong JOptionPane.showInputDialog(null, "Nhập Loại Hợp Đồng:");
- String TuNgay = JOptionPane.showInputDialog(null,
- String DenNgay = JOptionPane.showInputDialog(null,
- // Thực hiện truy vấn SQL để thêm Hợp đồng mới vào cơ sở dữ liệu
- String sql = "INSERT INTO HopDongLaoDong
(MaChucVu, MaNhanVien, LoaiHopDong, TuNgay, DenNgay) VALUES (?, ?, ?, ?, ?)";
- try (Connection connection DatabaseConnection.getConnection();
- PreparedStatement preparedStatement connection.prepareStatement(sql)) {
- // Thiết lập giá trị cho các tham số của truy vấn
- JOptionPane.showMessageDialog(null, "Thêm hợp đồng mới thành công.");
- // Làm mới bảng hiển thị dữ liệu nhân viên sau khi thêm
- JOptionPane.showMessageDialog(null, "Đã xảy ra lỗi khi thêm hợp đồng mới.", "Lỗi",
- table_Luong = new JTable(model);
JScrollPane(table_Luong); // Đặt JTable trong JScrollPane
- JButton btnAddNV = new JButton("Thêm");
- JButton btnEditNV = new JButton("Sửa");
- JButton btnDeleteNV = new JButton("Xóa");
- // Lấy bậc lương cần sửa từ người dùng
- String BacLuongCapNhat JOptionPane.showInputDialog(null, "Nhập Bậc Lương cần sửa:");
- // Kiểm tra xem bậc lương có tồn tại không
- // Nếu tồn tại, lấy thông tin mới từ người dùng
- String LuongCoBanMoi JOptionPane.showInputDialog(null, "Nhập Lương Cơ Bản mới:");
- String LuongPhuCapMoi JOptionPane.showInputDialog(null, "Nhập Lương Phụ Cấp mới:");
- // Thực hiện truy vấn SQL để cập nhật thông tin lương
- String sql = "UPDATE Luong SET LuongCoBan=?,
- try (Connection connection DatabaseConnection.getConnection();
- PreparedStatement preparedStatement connection.prepareStatement(sql)) {
- // Thiết lập giá trị cho các tham số của truy vấn
- // Thực hiện truy vấn UPDATE
"Sửa thông tin lương thành công.");
- // Làm mới bảng hiển thị dữ liệu lương sau khi sửa
"Không tìm thấy bậc lương " + BacLuongCapNhat, "Thông báo", JOptionPane WARNING_MESSAGE );
- JOptionPane.showMessageDialog(null, "Đã xảy ra lỗi khi sửa thông tin lương.", "Lỗi",
- JOptionPane.showMessageDialog(null, "Không tìm thấy bậc lương " + BacLuongCapNhat, "Thông báo",
- // Kiểm tra xem một bậc lương có tồn tại không
- private boolean kiemTraTonTai(String BacLuong) {
- String sql = "SELECT * FROM Luong WHERE BacLuong
- try (Connection connection DatabaseConnection.getConnection();
- PreparedStatement preparedStatement connection.prepareStatement(sql)) {
- try (ResultSet resultSet preparedStatement.executeQuery()) {
- return resultSet.next(); // Trả về true nếu có ít nhất một kết quả
- String BacLuongXoa JOptionPane.showInputDialog(null, "Nhập Bậc Lương cần xóa:");
- String sql = "DELETE FROM Luong WHERE BacLuong
- try (Connection connection DatabaseConnection.getConnection();
- PreparedStatement preparedStatement connection.prepareStatement(sql)) {
- // Thực hiện truy vấn DELETE
- JOptionPane.showMessageDialog(null, "Xóa lương thành công.");
- // Làm mới bảng hiển thị dữ liệu lương sau khi xóa
- JOptionPane.showMessageDialog(null, "Không tìm thấy bậc lương " + BacLuongXoa, "Thông báo",
- JOptionPane.showMessageDialog(null, "Đã xảy ra lỗi khi xóa Lương.", "Lỗi", JOptionPane ERROR_MESSAGE );
- // Tạo một hộp thoại (JDialog) hoặc sử dụng
JOptionPane để lấy dữ liệu nhập từ người dùng cho lương mới
- String BacLuong JOptionPane.showInputDialog(null, "Nhập Bậc Lương:");
- String LuongCoBan JOptionPane.showInputDialog(null, "Nhập Lương Cơ Bản:");
- String LuongPhuCap JOptionPane.showInputDialog(null, "Nhập Lương Phụ Cấp:");
- // Thực hiện truy vấn SQL để thêm lương mới vào cơ sở dữ liệu
- String sql = "INSERT INTO Luong (BacLuong,
- try (Connection connection DatabaseConnection.getConnection();
- PreparedStatement preparedStatement connection.prepareStatement(sql)) {
- // Thiết lập giá trị cho các tham số của truy vấn
- // Thực hiện truy vấn INSERT
- // Làm mới bảng hiển thị dữ liệu sau khi thêm -
- JOptionPane.showMessageDialog(null, "Đã xảy ra lỗi khi thêm Lương mới.", "Lỗi",
- Lớp Run để chạy chương trình
- public class Run extends JFrame implements ActionListener {
- public Run(Menu mn, NhanVien nv, CuaHang ch,
HopDongLaoDong hdld, Luong luong, ChucVu cv) {
- public static void CloseConnection(Connection con) {
- public static void main(String[] args) {
Run(null,null,null,null,null,null);
- Menu Tbmenu = new Menu(mainFrame); // Truyền mainFrame vào Menu
- if(src.equals("Nhân Viên")) {
- System out println("Bạn vừa nhập nút Nhân
- }else if(src.equals("Chức Vụ")) {
- System out println("Bạn vừa nhập nút Chức
- }else if(src.equals("Cửa Hàng")) {
- System out println("Bạn vừa nhập nút Cửa
- }else if(src.equals("Hợp Đồng Lao Động")) {
- System out println("Bạn vừa nhập nút Hợp Đồng Lao Động");
- }else if(src.equals("Lương")){
- System out println("Bạn vừa nhập nút