Hören Sie zuerst auf, SQL so zu bauen - verwenden Sie parametrisiertes SQL und ein PreparedStatement
. Ihr aktueller Code ist anfällig für SQL-Injection-Angriffe.
Rufen Sie grundsätzlich nicht rs.next()
auf zweimal hintereinander (zuerst in der if
dann im while
)... das geht ganz einfach, indem Sie Ihren while
umwandeln Schleife in ein do/while
Schleife:
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());
}
Oder nur haben die while
-Schleife, mit einer separaten Variable, um zu erkennen, dass Sie etwas gesehen haben Ergebnisse:
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");
}
(Außerdem sollten Sie try-with-resources verwenden, um Ihr ResultSet
zu schließen etc, und nur einen Stack-Trace auf stdout zu drucken, ist fast nie der geeignete Weg, um Ausnahmen zu behandeln ...)