2016-11-16 3 views
0

ich eine Methode bekam eine ganze Zahl von einer MySQL-Tabelle zu erhaltenJava, MySQL - NULL resultset

public int getAddressID(String postcode) throws SQLException { 
    String q = "SELECT PK_ADDRESS_ID FROM tbl_addresses WHERE postcode =" + "\"" + postcode + "\""; 
    System.out.println(q); 
    ResultSet rs = executeSearch(q); 
    int pc = 0; 
    while (rs.next()) { 
     String str = rs.getString("postcode"); 
     pc = Integer.parseInt(str); 
    } 
    System.out.println(pc); 
    return pc; 
} 

Die Abfrage scheint in Ordnung, aber irgendwie, wenn ich einige Variable initialisieren und diese Methode verwenden, erhalte ich die Fehler Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "". Fehle ich etwas? Danke für jede Hilfe!

+0

Was ist der Wert der Postleitzahl? – mm759

+0

Die Idee ist eine Postleitzahl einzugeben und dann ADDRESS_ID zu finden. Postleitzahlwert ist einzigartig. –

+0

Wenn der Rückgabewert address_id keine Ziffer ist, kann nicht in int konvertiert werden. –

Antwort

3

Ihre SQL ist SELECT PK_ADDRESS_ID ...

aber dann versuchen Sie zu bekommen

rs.getString("postcode"); 

Änderung

rs.getString("PK_ADDRESS_ID"); 
-1

Es scheint, Sie PK_ADDRESS_ID Spalte aus der Datenbank auswählen und der Rückgabewert ist entweder "" (empty) oder NULL. So zeigt es NumberFormatException, die nicht als eine Zahl konvertiert werden können.

Überprüfen Sie bitte den Wert, den Sie von der Datenbank erhalten.

+0

Das sieht wie ein Kommentar mit einer falschen Annahme aus. – AxelH