Първо, спрете да създавате SQL по този начин - използвайте параметризиран SQL и PreparedStatement
. Текущият ви код е уязвим за атаки чрез SQL инжектиране.
По принцип не извиквайте rs.next()
два пъти подред (първо в if
след това в while
)... можете лесно да направите това, като конвертирате вашия while
цикъл в do/while
цикъл:
if (rs.next()) {
do {
System.out.print(rs.getString("idUser") + " ,");
System.out.print(rs.getString("Name") + " ,");
System.out.print(rs.getString("Email") + " ,");
System.out.println(rs.getString("country") + " .");
} while (rs.next());
}
Или само има while
цикъл, с отделна променлива за откриване, че сте видели някои резултати:
bool anyResults = false;
while (rs.next()) {
anyResults = true;
System.out.print(rs.getString("idUser") + " ,");
System.out.print(rs.getString("Name") + " ,");
System.out.print(rs.getString("Email") + " ,");
System.out.println(rs.getString("country") + " .");
}
if (!anyResults) {
JOptionPane.showMessageDialog(null, "Not Found");
}
(Освен това трябва да използвате try-with-resources, за да затворите своя ResultSet
и т.н. и просто отпечатване на проследяване на стека към stdout почти никога не е подходящият начин за обработка на изключения...)