# ResultSet



## stephanie (17. Mrz 2011)

Abend,

```
Statement stmt;
   ResultSet rSet; 
   String sqlQuery = "SELECT * FROM tabelle";
	      rSet = stmt.executeQuery( sqlQuery );
                         while ( rSet.next()){
	    	  String name = rSet.getString("feld1");
	       
	    	
	        System.out.println ( rSet.getString(1)+ "\t" + rSet.getString(2) +"\t"+ rSet.getString(3)+"\t"+ rSet.getString(4)
	        );
	         	
	      }
```


Bei meinem Tabelle gibt es 4 Feld. Ich will eine SQLAbfrage. Es geht mein program so. Aber z.B. denke ich, dass ich 20 Feld hätte. Muss ich bis 20 rSet.getString(1) ... rSet.getString(20) schreiben?Wir kann ich alle felde auslesen, ohne es so zu implementieren? Gibt es effizinter Weg?

Danke im voraus


----------



## Gast2 (17. Mrz 2011)

Du kannst über die MetaDaten die anzahl der Spalten rausbekommen und darüber eine Schleife laufen lassen, z.B. so:

```
Statement stmt;
			ResultSet rSet;
			String sqlQuery = "SELECT * FROM tabelle";
			rSet = stmt.executeQuery(sqlQuery);
			int columnCount = rSet.getMetaData().getColumnCount();
			while (rSet.next()) {
				List<String> data = new ArrayList<String>();
				for(int columnIdx = 1; columnIdx <= columnCount; columnIdx++){
					data.add(rSet.getString(columnIdx));
				}
				System.out.println(Arrays.toString(data.toArray()));
			}
```


----------



## stephanie (18. Mrz 2011)

Danke fassy. Aber mit deinem Codestück nehme ich nur zweite Datensatz, obwohl ich in der DB zwei Datensätze habe. erste ist weg. warum?


----------

