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
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232package DAO;
import DTO.TAIKHOAN;
import connectionSQL.ConnectionManager;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
public class TaiKhoanDAO implements DAOInterface<TAIKHOAN>{
public static TaiKhoanDAO getInstance() {
return new TaiKhoanDAO();
}
@Override
public ArrayList<TAIKHOAN> getList() {
ArrayList<TAIKHOAN> list = new ArrayList<>();
try (Connection con = ConnectionManager.getConnection();
//SELECT * FROM TAIKHOAN + JOIN NHANVIEN ON NHANVIEN.maNhanVien = TAIKHOAN.username
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM TAIKHOAN ")) {
while (rs.next()) {
TAIKHOAN taikhoan = new TAIKHOAN( rs.getString("username"), rs.getString("pass"), rs.getString("maNhomQuyen"), rs.getString("avatar"));
list.add(taikhoan);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
@Override
public int del(String ma) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'del'");
}
@Override
public int insert(TAIKHOAN taikhoan) {
int result = 0;
try (Connection con = ConnectionManager.getConnection();
PreparedStatement pst = con.prepareStatement("INSERT INTO TAIKHOAN (username, pass, maNhomQuyen, avatar) VALUES (?, ?, ?, ?)")) {
pst.setString(1, taikhoan.getUsername());
pst.setString(2, taikhoan.getPass());
pst.setString(3, taikhoan.getMaNhomQuyen());
pst.setString(4, taikhoan.getAvatarImg());
result = pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
@Override
public int update(TAIKHOAN taikhoan) {
int result = 0;
try (Connection con = ConnectionManager.getConnection();
PreparedStatement pst = con.prepareStatement("UPDATE TAIKHOAN SET pass = ?, maNhomQuyen = ?, avatar = ? WHERE username = ?")) {
pst.setString(1, taikhoan.getPass());
pst.setString(2, taikhoan.getMaNhomQuyen());
pst.setString(3, taikhoan.getAvatarImg());
pst.setString(4, taikhoan.getUsername());
pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
// --- NON IMPLEMENT METHODS ---
public TAIKHOAN getTAIKHOAN(String username) {
TAIKHOAN taikhoan = null;
try (Connection con = ConnectionManager.getConnection();
PreparedStatement pst = con.prepareStatement("SELECT * FROM TAIKHOAN WHERE username = ?")) {
pst.setString(1, username);
try (ResultSet rs = pst.executeQuery()) {
if (rs.next()) {
taikhoan = new TAIKHOAN( rs.getString("username"), rs.getString("pass"), rs.getString("maNhomQuyen"), rs.getString("avatar"));
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return taikhoan;
}
public String getAvatar(String username) {
String avatar = "";
try (Connection con = ConnectionManager.getConnection();
PreparedStatement pst = con.prepareStatement("SELECT avatar FROM TAIKHOAN WHERE username = ?")) {
pst.setString(1, username);
try (ResultSet rs = pst.executeQuery()) {
if (rs.next()) {
avatar = rs.getString("avatar");
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return avatar;
}
public Object[][] getObjectToRender() {
ArrayList<Object[]> list = new ArrayList<>();
try (Connection con = ConnectionManager.getConnection();
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT nv.maNhanVien, cn.hoTen, tk.username, tk.pass, tk.maNhomQuyen FROM CONNGUOI cn JOIN NHANVIEN nv ON cn.CMND = nv.CMND JOIN CHUCVU cv ON nv.maChucVu = cv.maChucVu JOIN TAIKHOAN tk ON nv.maNhanVien = tk.username WHERE nv.trangThai = 1")) {
int count = 0;
while (rs.next()) {
Object[] ob = new Object[]{count + 1 + "", rs.getString("username") + " - " + rs.getString("hoTen"), rs.getString("maNhomQuyen")};
list.add(ob);
count++;
}
} catch (SQLException e) {
e.printStackTrace();
}
return list.toArray(new Object[0][]);
}
public Object[][] getObjectToRender(String tenPhong) {
ArrayList<Object[]> list = new ArrayList<>();
try (Connection con = ConnectionManager.getConnection();
Statement st = con.createStatement()) {
String sql = "SELECT nv.maNhanVien, cn.hoTen, cv.tenChucVu, tk.username, tk.pass, tk.maNhomQuyen FROM CONNGUOI cn JOIN NHANVIEN nv ON cn.CMND = nv.CMND JOIN CHUCVU cv ON nv.maChucVu = cv.maChucVu JOIN TAIKHOAN tk ON nv.maNhanVien = tk.username JOIN PHONGBAN pb ON nv.maPhong = pb.maPhong WHERE nv.trangThai = 1 ";
if (!tenPhong.equalsIgnoreCase("Phòng ban")) {
sql += "AND pb.tenPhong = N'" + tenPhong + "'";
}
try (ResultSet rs = st.executeQuery(sql)) {
int count = 0;
while (rs.next()) {
Object[] ob = new Object[]{count + 1 + "", rs.getString("maNhanVien") + " - " + rs.getString("hoTen"), rs.getString("maNhomQuyen")};
list.add(ob);
count++;
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return list.toArray(new Object[0][]);
}
public String[] getDanhSachEmailVaUsername() {
String[] data = null;
try (Connection con = ConnectionManager.getConnection();
Statement st = con.createStatement()) {
try (ResultSet rs = st.executeQuery("SELECT COUNT(maNhanVien) FROM CONNGUOI cn JOIN NHANVIEN nv ON cn.CMND = nv.CMND WHERE nv.trangThai = 1")) {
if (rs.next()) {
data = new String[rs.getInt(1) * 2];
}
}
try (ResultSet rs = st.executeQuery("SELECT * FROM CONNGUOI cn JOIN NHANVIEN nv ON cn.CMND = nv.CMND WHERE nv.trangThai = 1")) {
int count = 0;
while (rs.next()) {
data[count] = rs.getString("email");
data[count + 1] = rs.getString("maNhanVien");
count += 2;
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return data;
}
public String getEmail(String username) {
String email = "";
try (Connection con = ConnectionManager.getConnection();
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT cn.email FROM CONNGUOI cn JOIN NHANVIEN nv ON cn.CMND = nv.CMND WHERE nv.maNhanVien = '" + username + "'")) {
if (rs.next()) {
email = rs.getString("email");
}
} catch (SQLException e) {
e.printStackTrace();
}
return email;
}
public String getUsername(String email) {
String user = "";
try (Connection con = ConnectionManager.getConnection();
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT tk.username FROM CONNGUOI cn JOIN NHANVIEN nv ON cn.CMND = nv.CMND JOIN TAIKHOAN tk ON tk.username=nv.maNhanVien WHERE cn.email = N'" + email + "'")) {
if (rs.next()) {
user = rs.getString(1);
}
} catch (SQLException e) {
e.printStackTrace();
}
return user;
}
public void updatePassword(String username, String pass) {
try (Connection con = ConnectionManager.getConnection();
PreparedStatement pst = con.prepareStatement("UPDATE TAIKHOAN SET pass=? WHERE username=?")) {
pst.setString(1, pass);
pst.setString(2, username);
pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void UpdateQuyenTaiKhoan(String username, String maNhomQuyen) {
try (Connection con = ConnectionManager.getConnection();
PreparedStatement pst = con.prepareStatement("UPDATE TAIKHOAN SET maNhomQuyen=? WHERE username=?")) {
pst.setString(1, maNhomQuyen);
pst.setString(2, username);
pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
// viết bậy bạ