Untitled
unknown
plain_text
6 months ago
1.8 kB
4
Indexable
// Sign in an existing user with hashed password verification public static User signIn(String username, String password) throws SQLException { String sql = "SELECT * FROM User WHERE username = ? AND password = ?"; // Hash the input password to compare with stored hash String hashedPassword = PasswordUtil.hashPassword(password); try (Connection connection = DatabaseManager.getInstance().getConnection(); PreparedStatement stmt = connection.prepareStatement(sql)) { stmt.setString(1, username); stmt.setString(2, hashedPassword); try (ResultSet rs = stmt.executeQuery()) { if (rs.next()) { int userId = rs.getInt("Id"); String name = rs.getString("name"); String email = rs.getString("email"); String contactNumber = rs.getString("contactNumber"); String userType = rs.getString("userType"); User user = null; if ("Administrator".equals(userType)) { user = new Administrator(username, password, name, email, contactNumber); } else if ("Trainer".equals(userType)) { user = new Trainer(username, password, name, email, contactNumber, rs.getString("specialization")); } else if ("Member".equals(userType)) { user = new Member(username, password, name, email, contactNumber); } if (user != null) { user.setId(userId); return user; } } } } return null; // Return null if login fails }
Editor is loading...
Leave a Comment