Вы в основном получаете все данные о сотрудниках, сохраняя их в resultSet, но затем вы просматриваете каждый из них. Если у вас было 3 набора имен пользователей и паролей и только одно совпадение, вы получите
Matched!
Invalid
Invalid
Вместо этого вы можете просто захотеть проверить одно имя пользователя и пароль? Не уверен, что именно то, что вы ищете. Также, когда вы сравниваете имена пользователей и пароли, используйте .equals ().
РЕДАКТИРОВАТЬ
Изменить, чтобы ответить выше, использовать .equals()
вместо .matches()
.
Statement myStmt = myConn.createStatement();
ResultSet resultSet = myStmt.executeQuery("SELECT * FROM `Employee`");
boolean check = false;
while(resultSet.next()){
if(resultSet.getString("username").equals(textField_1.getText()) &&
resultSet.getString("password").equals(textField_2.getText()))
{
System.out.println("Matched!");
check = true;
break;
}
}
if (check == false){
System.out.println("Invalid username or password!");
}
Вы ищете систему выделения именованных сущностей или короткое выделение именованных сущностей. Существует несколько хороший инструментарии, доступный для выручения Вас. LingPipe в особенности имеет очень достойное учебное руководство. CAGEclass, кажется, ориентирован вокруг выделения именованных сущностей на географических названиях места, но я еще не использовал его.
Вот хорошая запись в блоге о трудностях выделения именованных сущностей с географическими названиями мест.
Если бы Вы идете с Java, я рекомендовал бы использовать классы выделения именованных сущностей LingPipe. OpenNLP также имеет некоторых, но у первого есть лучшая документация.
Если Вы ищете некоторый теоретический фон, Chavez и др. (2005) создали интересный syntem и зарегистрировали его.
Скрытое семантическое отображение походит потенциально на хорошую подгонку. Это примерно так же наивно из алгоритма, как Вы, вероятно, найдете.