बस जांचें कि क्या ResultSet#next()
सच लौटता है। उदा.
public boolean exist(String username, String password) throws SQLException {
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
boolean exist = false;
try {
connection = database.getConnection();
statement = connection.prepareStatement("SELECT id FROM user WHERE username = ? AND password = MD5(?)");
statement.setString(1, username);
statement.setString(2, password);
resultSet = statement.executeQuery();
exist = resultSet.next();
} finally {
close(resultSet, statement, connection);
}
return exist;
}
जिसे आप निम्न प्रकार से उपयोग कर सकते हैं
if (userDAO.exist(username, password)) {
// Proceed with login?
} else {
// Show error?
}
वैकल्पिक रूप से, आप इसे एक पूर्ण-उपयोगी User
. लौटाने भी दे सकते हैं या null
अगर कोई नहीं है। उदा.
public User find(String username, String password) throws SQLException {
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
User user = null;
try {
connection = database.getConnection();
statement = connection.prepareStatement("SELECT id, username, email, dateOfBirth FROM user WHERE username = ? AND password = MD5(?)");
statement.setString(1, username);
statement.setString(2, password);
resultSet = statement.executeQuery();
if (resultSet.next()) {
user = new User(
resultSet.getLong("id"),
resultSet.getString("username"),
resultSet.getString("email"),
resultSet.getDate("dateOfBirth"));
}
} finally {
close(resultSet, statement, connection);
}
return user;
}
के साथ
User user = userDAO.find(username, password);
if (user != null) {
// Proceed with login?
} else {
// Show error?
}