Ergebnis aus SQL Abfrage in Array speichern

Status
Nicht offen für weitere Antworten.

kingpin166

Mitglied
Habe folgendes Problem.
Ich möchte meine Datenbank auslesen und zwar nur eine bestimmte Zeile (siehe Code). Diese Zeile, will ich dann Spalte für Spalte in einen Array vom Typ String speichern und die Methode liefert diesen String dann wieder zurück an eine andere Klasse...

Das Problem besteht darin, dass das Array allerdings nicht gefüllt wird. Und mit einem leeren Array bekomme ich nun einen Fehler in meiner anderen Klasse, die mit leeren Werten nicht klar kommt.

Code:
public String[] xml_query_job(int zeile)
	{
		String[] array = new String[count_jobs()];
		
		connect.verbinden();
		try {
		PreparedStatement select = connect.conn.prepareStatement("SELECT xcord,ycord,jobCountry,jobCompany FROM jobTable WHERE row = 'zeile'");  // Hab die Sachen mit Absicht auskommentiert
	    //select.setString(1,"xcord");
	    //select.setString(2,"ycord");
	    //select.setString(3,"jobCountry");
	    //select.setString(4,"jobCompany");  
	    
	    ResultSet rs =  select.executeQuery();
	    int i = 0;
	    while (rs.next())
	    {
	    	array[i] = rs.getString(i+1);
	    	i++;
	    }
	    
	    
	    select.close();
	    connect.conn.close();
	    System.out.println("Verbindung zur Datenbank geschlosse //xml_query");
	    System.out.println("Erster Wert im Array: "+array[0]);
	    
	    return array;
		}
		catch(SQLException e)
		{
			System.out.println("Fehler im Statement");
			return null ;
		}
	}
 
while(rs.next()) holt eine neue Zeile aus dem Resultset.
Die einzelnen Felder kann man mit Namen oder mit Indizes ansprechen.
In der For-Schleife werden 4 Spalten gelesen und ins Array kopiert.

Code:
    ResultSet rs =  select.executeQuery(); 
       int i = 0; 
       while (rs.next()) 
       { 
            for( int i=0; i < 4; i++){
              array[i] = rs.getString(i); 
            }
       }

sollte so gehen, ist aber nicht getestet.
Du kannst auch rs.getString("xcord") auf die Spalten zugreifen. Sind zwar ein paar Zeilen mehr, aber falls später einmal ein Spalte in der Tabelle hinzukommt, klappt es immernoch.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben