Untitled
unknown
plain_text
a year ago
1.8 kB
7
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