У меня есть этот код пропущен, который я использую для проверки ввода:Как сравнить строки и объект в Java
public void validaUserID(FacesContext context, UIComponent component, Object value) throws ValidatorException, SQLException {
int findAccount = 0;
if (ds == null) {
throw new SQLException("Can't get data source");
}
// Initialize a connection to Oracle
Connection conn = ds.getConnection();
if (conn == null) {
throw new SQLException("Can't get database connection");
}
// Convert Object into String
int findValue = Integer.parseInt(value.toString());
// With SQL statement get all settings and values
PreparedStatement ps = conn.prepareStatement("SELECT * from USERS where USERID = ?");
ps.setInt(1, findValue);
try {
//get data from database
ResultSet result = ps.executeQuery();
while (result.next()) {
// Put the the data from Oracle into Hash Map
findAccount = result.getInt("USERID");
}
} finally {
ps.close();
conn.close();
}
// Compare the value from the user input and the Oracle data
if (value.equals(findAccount)) {
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR,
value + " Session ID is already in use!", null));
}
}
По какой-то причине, что входные данные не по сравнению с надлежащим значением в Oracle. Каков правильный способ сравнения двух значений?
«Не сравнивается должным образом» - пожалуйста, напишите более подробно. Какой вклад вы использовали, и каково было в результате поведение? –
У меня нет вывода. Правильный вывод должен быть «.. Идентификатор сеанса уже используется!» – user1285928