Ich möchte überprüfen, ob die Telefonnummer in der Datenbankspalte (TelephoneNumber
) existiert. Wenn vorhanden will ich wieder true
oder sonst false
Dieser Code wird nicht nur die TelephoneNumber
Spalt, um zu überprüfen, kann es andere DB Spalten validieren wie FirstName
, LastName
, EmailAddress
etc
Java - Effiziente Methode zum Durchlaufen der Datenbankeinträge
public boolean executeDBQuery(String tableName, String columnName,
String columnValue) {
try {
PreparedStatement ps = null;
String query = "SELECT TOP 1 " + columnName + "FROM" + tableName
+ "WHERE" + columnName + "=" + '?';
ps = conn.prepareStatement(query);
ps.setString(1, columnValue);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
return true;
} else {
return false;
}
} catch (SQLException ex) {
}
return false;
}
Haupt Methode:
public static void main(String[] args) {
Database db = new Database();
boolean result = db.executeDBQuery("Application","FirstName","asd");
System.out.println(result);
}
Der obige Code gibt einen wahren Wert zurück, auch wenn die Werte nicht im DB gefunden werden. Ich bin mir nicht sicher, was ich hier falsch mache. Kann mir jemand helfen
Zunächst ist die Verwendung von "*" keine gute Idee. Zweitens: warum nicht "WHERE" verwenden und die db die Suche durchführen lassen. Mit Indizes ist dies wahrscheinlich viel effizienter. – Fildor
Ich sehe nicht, wie Sie andere Spalten mithilfe des angegebenen Codes validieren würden. Heißt das, du benutzt das selbe nur für einen anderen Kolumnennamen? In diesem Fall müssten alle Spalten Stringspalten sein. Was ist mit numerischen? Beachten Sie auch, dass Sie die Groß-/Kleinschreibung in Ihrer Datenbank steuern können, indem Sie die entsprechende Sortierung auswählen. – Fildor
Ja, ich werde Integer in String umwandeln, während Sie es an die Argumente übergeben – Aishu