Stop eerst zo met het bouwen van SQL - gebruik SQL met parameters en een PreparedStatement
. Uw huidige code is kwetsbaar voor SQL-injectie-aanvallen.
Bel in principe niet rs.next()
twee keer achter elkaar (eerst in de if
dan in de while
)... u kunt dat eenvoudig doen door uw while
. te converteren loop in een do/while
lus:
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());
}
Of gewoon hebben de while
loop, met een aparte variabele om te detecteren dat je sommige . hebt gezien resultaten:
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");
}
(Bovendien moet u try-with-resources gebruiken om uw ResultSet
te sluiten enz., en alleen het afdrukken van een stacktracering naar stdout is bijna nooit de juiste manier om met uitzonderingen om te gaan...)