-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNhanVien_Dao.java
More file actions
173 lines (143 loc) · 6.5 KB
/
Copy pathNhanVien_Dao.java
File metadata and controls
173 lines (143 loc) · 6.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
package Dao;
import java.sql.*;
import java.util.ArrayList;
import java.time.LocalDate;
import java.util.List;
import Ctrl.ConnectData;
import Entity.NhanVien;
public class NhanVien_Dao {
private static Object ngayVaoLam;
private static NhanVien nhanVien;
// public static Connection getConnection() throws SQLException {
// String url = "jdbc:sqlserver://localhost:1433;databaseName=QuanLyHieuThuoc;encrypt=true;trustServerCertificate=true;";
// String user = "sa";
// String password = "";
// return DriverManager.getConnection(url, user, password);
// }
// {"STT", "Mã NV", "Tên NV", "SĐT", "Chức vụ", "Email", "Trạng thái", "Ngày vào làm", "Giới tính", "Ngày sinh", "Trình độ"};
public List<NhanVien> getAllNhanVien() {
List<NhanVien> list = new ArrayList<>();
try (Connection conn = ConnectData.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM NhanVien")) {
while (rs.next()) {
NhanVien nv = new NhanVien(
rs.getString("maNV"),
rs.getString("hoTenNV"),
rs.getString("sdtNV"),
rs.getString("chucVu"),
rs.getString("email"),
rs.getBoolean("trangThai"),
rs.getDate("ngayVaoLam"),
rs.getBoolean("gioiTinh"),
rs.getDate("ngaySinh"),
rs.getString("trinhDo")
);
list.add(nv);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
public List<NhanVien> searchNhanVien(String searchText) {
List<NhanVien> list = new ArrayList<>();
String sql = "SELECT * FROM NhanVien WHERE maNV LIKE ? OR hoTenNV LIKE ?";
try (Connection conn = ConnectData.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql)) {
String searchPattern = "%" + searchText + "%";
stmt.setString(1, searchPattern);
stmt.setString(2, searchPattern);
try (ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
NhanVien nv = new NhanVien(
rs.getString("maNV"),
rs.getString("hoTenNV"),
rs.getString("sdtNV"),
rs.getString("chucVu"),
rs.getString("email"),
rs.getBoolean("trangThai"),
rs.getDate("ngayVaoLam"),
rs.getBoolean("gioiTinh"),
rs.getDate("ngaySinh"),
rs.getString("trinhDo")
);
list.add(nv);
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
public NhanVien searchNhanVienByMaNV(String maNV) {
NhanVien nv = null;
String sql = "SELECT * FROM NhanVien WHERE maNV = ?";
try (Connection conn = ConnectData.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setString(1, maNV);
try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
nv = new NhanVien(
rs.getString("maNV"),
rs.getString("hoTenNV"),
rs.getString("sdtNV"),
rs.getString("chucVu"),
rs.getString("email"),
rs.getBoolean("trangThai"),
rs.getDate("ngayVaoLam"),
rs.getBoolean("gioiTinh"),
rs.getDate("ngaySinh"),
rs.getString("trinhDo")
);
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return nv;
};
public boolean updateNhanVien(NhanVien nv) {
String sql = "UPDATE NhanVien SET hoTenNV = ?, sdtNV = ?, chucVu = ?, email = ?, trangThai = ?, ngayVaoLam = ?, gioiTinh = ?, ngaySinh = ?, trinhDo = ? WHERE maNV = ?";
try (Connection conn = ConnectData.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setString(1, nv.getHoTenNV());
stmt.setString(2, nv.getSdtNV());
stmt.setString(3, nv.getChucVu());
stmt.setString(4, nv.getEmail());
stmt.setBoolean(5, nv.isTrangThai());
// stmt.setDate(6, new java.sql.Date(nv.getNgayVaoLam().getTime()));
// rs.getDate("NSX").toLocalDate();
stmt.setDate(6, Date.valueOf(nv.getNgayVaoLam()));
stmt.setBoolean(7, nv.isGioiTinh());
stmt.setDate(8, Date.valueOf(nv.getNgaySinh()));
stmt.setString(9, nv.getTrinhDo());
stmt.setString(10, nv.getMaNV());
return stmt.executeUpdate() > 0; // thành công nếu có ít nhất 1 dòng được cập nhật
} catch (SQLException e) {
e.printStackTrace();
return false;
}
}
public boolean themNhanVien(NhanVien nv) {
String sql = "INSERT INTO NhanVien (maNV, hoTenNV, sdtNV, chucVu, email, trangThai, ngayVaoLam, gioiTinh, ngaySinh, trinhDo) "
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
try (Connection conn = ConnectData.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setString(1, nv.getMaNV());
stmt.setString(2, nv.getHoTenNV());
stmt.setString(3, nv.getSdtNV());
stmt.setString(4, nv.getChucVu());
stmt.setString(5, nv.getEmail());
stmt.setBoolean(6, nv.isTrangThai());
stmt.setDate(7, Date.valueOf(nv.getNgayVaoLam()));
stmt.setBoolean(8, nv.isGioiTinh());
stmt.setDate(9, Date.valueOf(nv.getNgaySinh()));
stmt.setString(10, nv.getTrinhDo());
return stmt.executeUpdate() > 0;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
}
}