[Java] Form đăng nhập Username & Password kết nối Database
Bài viết này sẽ hướng dẫn các tạo Form đăng nhập với thông tin Username & Password sẽ được lấy từ Database và kiểm tra kết quả nếu chính xác thì đăng nhập hệ thống thành công!
Để làm việc SQL Server chúng ta cần có SQLJDBC, các bạn download JDBC-4.jar
Hướng dẫn thêm sqljdbc-4.jar vào thư viện trong NetBeans
- Chuột phải Libraries > Add JAR/Folder…
- Dẫn đến nơi chứa sqljdbc4.jar bạn vừa download ở trên
Kết quả thành công
Giao diện
Code btnLogin()
Code btnReset()
Kết quả
- SELECT * FROM Users
- Thành công
- Thất bại
Chúc bạn thành công!
Ad cho mình hỏi tí
Bạn cứ hỏi đi, mình giúp cho.
có thể làm thêm chức năng nhớ tên đăng nhập và mật khẩu ko ạ!
Minh dang lam Lab trên trường bài này 😀
Kiểm tra bình luận nào 🙂
Chào bạn ^_^. Cảm ơn đã ghé thăm “My Webiste” !
admin noi ro ngay chỗ username=? and password=? được không?
Chào bạn Giang
Chào bạn Tài
ad cho mình hỏi trong CSDL của mình có thêm cột ROLES làm thế nào mà khi đăng nhập với tài khoản có role là admin thì nó sẽ hiện jFrame của admin còn role là user thì hiện JFrame của user
Chào bạn Khánh!
VD: Role: bao gồm Sinh viên và Giáo Viên
– Nếu chỉ có 2 trường hợp thì Roles bạn có thể để kiểu dữ liệu là bit: 0 và 1
– Còn Roles nhiều hơn 2 thì bạn sử dụng Roles kiểu varchar: SV, GV và GD
Xử lý:
– Đăng nhập sai báo lỗi
– Đăng nhập đúng thì bạn kiểm Roles: http://truonggiangit.com/wp-content/uploads/2017/11/images-101.png
Chúc bạn thành công!
Bạn cho mình xin lại cách giải quyết được không
Chào bạn Pham99,
Đây là luồng xử lý cho trường hợp trên như sau:
Step 1: Login bằng thông tin (User & Password)
Step 2: Kiểm tra thông tin tài khoản:
– Nếu FAIL thì đăng nhập lại hoặc Kết thúc
– Nếu PASS thì có 02 trường hợp và viết CODE xử lý ROLE chỗ này. ROLE là Admin hay là Member thì cho New JFrame();
JFrame admin = new JFrame(); hoặc JFrame user = new JFrame();
Trong db em có cột phanQuyen có 2 giá trị là 1(admin) và 2(nhanvien)
Mình viết code như thế này thì nó kiểm tra điều kiện phân quyền không được, anh có thể giúp em được không ạ
int quyen = 0;
try {
connection = DriverManager.getConnection(“jdbc:mysql://localhost:3306/db_projectjava”, “root”, “”);
ps = connection.prepareStatement(“SELECT * FROM NhanVien WHERE maNV = ? AND matKhau = ? AND phanQuyen = ?”);
ps.setString(1, tfTaiKhoan.getText());
ps.setString(2, tfMatKhau.getText());
ps.setString(3, String.valueOf(quyen));
ResultSet rs = ps.executeQuery();
if(rs.next()) {
// JOptionPane.showMessageDialog(rootPane, “OK chưa”);
if(quyen == 1) {
this.setVisible(false);
Admin admin = new Admin();
admin.setVisible(true);
}
if(quyen == 2) {
this.setVisible(false);
Employee epl = new Employee();
epl.setVisible(true);
}
}
else {
JOptionPane.showMessageDialog(rootPane, “Tài khoản hoặc mật khẩu không tồn tại!”);
}
} catch (SQLException ex) {
Logger.getLogger(DangNhap.class.getName()).log(Level.SEVERE, null, ex);
}
ad cho mình hỏi giờ muốn làm thêm nhấn phím Enter thay cho việc click nút login thì làm như thế nào vậy ?
Tại ô nhập textfield Password:
– Nhấp chuột phải chọn: Event > Key > keyPressed
– Thực hiện gọi hàm Login()
Bạn tham khảo thêm video này: https://www.youtube.com/watch?v=ktpeW2m4rtU
Mình có tạo 2 form nhưng khi đăng nhập đúng tài khoản mật khẩu,lại được 1 form được còn form kia dù đăng nhập đúng mật khẩu tài khoản nhưng vẫn bị lỗi hiện sai
Chào Đông, vậy bạn kiểm tra kỹ lại code hoặc kết nối (Nên Print lỗi để Fix)
Bạn ơi cho mình hỏi sau khi login thành công muốn hiển thị lên một from khác phải làm sau vậy bạn?
Với chức năng này thì bạn làm như sau:
//Kiểm trả thông tin đăng nhập nếu chính xác
if(txtuser.equals(“test”) && txtpassword.equals(“123”)) {
//Thì khởi tạo 1 frame mới
newframe regFace =new newframe();
//Set true để mở lên
regFace.setVisible(true);
A có thể demo cái này cho e dc ko a giúp e vs ạk
a cho e hỏi giờ e muốn phân quyền admin. VD như với trưởng phòng thì đc vào form Truong phong dialog và form NhanViendialog, Còn nhân viên chỉ được vào form NhanViendialog thì làm ntn ạ?
Chào bạn Sơn,
Đối với trường hợp này thì Database bạn cần thiết kế thêm cột Roles kiểu dữ liệu varchar(20).
Tiếp theo trong code, khi xử lý câu lệnh SQL thì bạn cần Select thêm Roles và xem Roles gì? (TruongPhong or NhanVien)
Như vậy là biết được tài khoản nào là Trưởng Phòng or Nhân viên thì cho vào Dialog đó !!!
Admin ơi, giờ mình đăng nhập thành công rồi thì có cách nào cho nó chuyển sang giao diện tương tác không ạ.
admin cho em hỏi muốn cho người dùng đăng nhập sai quá 3 lần thì dừng chương trình thì làm sao ạ
Chào anh , hiện giờ em đã log in được và sau khi log in , em tạo ra một form xem info từng account đó thì anh có thế hướng dẫn em không ạ ?
mình muốn thêm sửa xóa dữ liệu thì làm kiểu j ạ
Pingback: kinh doanh online