Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben?

1 Antwort

Solange dir die anzahl der Datensätze bekannt sind und eine Array die Bedingung ist, wäre es folgendermaßen:

int rowCounter = 0;
while(rs.next()){
rows[rowCounter] = rs.getString(0);
rowCounter++;
}

Nachdem dir meist nicht die anzahl der datensätze bekannt ist, solltest du eine (Array-)List verwenden um die Datensätze zu speichern, da du zuvor keine feste Größe angeben musst.

Danke schonmal für deine Antwort. Also die Anzahl der Datensätze sind von vornherein leider nicht bekannt und daher wäre eine Array List fast besser geeignet.

0

Ich muss noch erwähnen dass ich bisher folgendes hatte.

while(resultf1.next())

int[] a;
a=new int[5];
a[0]=resultf1.getInt("zielp");

}

dies liest allerdings alle zeilen der spalte zielp aus.

aber wie gesagt, ich benötige gezielt einzelne datensätze.

0
@flou1988

Also die Anzahl der Datensätze sind von vornherein leider nicht bekannt

Entsprechend wäre es dann:

List<String> rows = new ArrayList<>();
...

while(...) {
rows.add(rs.getString(0));
}

aber wie gesagt, ich benötige gezielt einzelne datensätze.

willst du nur bestimmte Zeilen haben, einfach via Bedingung:

if (rs.getString(0).equals...) {

nur deine relevanten Zeilen filtern.

Mit Datensätzen meinst du mehrere Spalten-Werte. Oder?

Entsprechend solltest du dir ein Datenhaltungsobjekt erstellen, was du z.b. Row nennst. - Die Felder deiner Abfrage deklarierst du dort als Eigenschaft und baust entsprechend Konstruktor, Getter und Setter dazu.

Deine Arraylist wäre dann vom Typ: Row und könnte so aussehen:

while (...) {
  rows.add(new Row(rs.getInt(0), rs.getString(1);
}
0
@KnusperPudding

Danke dir für deine zahlreichen möglichkeiten. ich teste das ganze mal :-)

0
@flou1988

ich bräuchte doch nochmal deine hilfe.

Also wie gesagt.

Ich habe eine select anweisung die mir eine bis mehrere Zeilen

in der Datenbank mit allen Spaltenwerten ausgibt.

Von diesen Zeilen und Spalten möchte ich einzelne Werte abfragen,

die ich später für eine weitere Datenbankabfrage in der where Bedingung nutzen bzw. einzelne Werte in der Datenbank in eine Variable übergeben kann.

soviel ich verstanden habe ist new Row der Konstruktor und rs.getInt und rs.getString die beiden Getter.

rs.getInt holt sich die Zeile und rs.getString den Wert in der Spalte dieser Zeile!?

einen Setter brauch ich in diesem fall nicht da ich ja keine Daten zurückschreiben möchte, sondern nur auslesen.

Allerdings hat der Syntaxparser ein Problem mit new Row.

List rows = new ArrayList<>();

while( resultf1.next()) {

rows.add(new Row(rs.getInt(0), rs.getString(1);
}

wieso wird die ArrayList so aufgebaut :

List rows = new ArrayList<>();

was ist ist der unterschied zu

ArrayList<String> rows = new ArrayList<String>().

Zudem habe ich in mehreren Fällen den Einsatz eines Iterators gesehen der mit x.hasNext() arbeitet und als Zeiger zwischen den Werten hin und her wandert.

In den meisten Erklärungen finde ich nur einfache Array Beispiele oder Arraylisten. In Verbindung mit der Datenbankabfrage komme ich in Java völlig durcheinander.

0
@flou1988

oder sollte ich das eher so aufbauen

ArrayList<DR> rows = new ArrayList<Int>;

DR dr;

while(resultf1.next()) {

dr = new DR();

dr.setzielg(getInt(0), rs.getInt(0)),
dr.setziels(getInt(0), rs.getInt(1)),
rows.add(dr);

}

ich habs so noch nicht getestet.

0
@flou1988

soviel ich verstanden habe ist new Row der Konstruktor und rs.getInt und rs.getString die beiden Getter.

Ja und nein.

Beispiel:

class Row {

   private int id;

   public Row (int id) {
     this.id = id;
   }

  public int getID() {
     return this.id;
  }

  public void setID(int id){
     this.id = id;
  }

}

rs ist der Variablenname, den ich Testweise für Resultset vergeben habe. - Hier gibt es bereits getter.

mit der Schleife:

while (rs.next()) {
  ...
}

Bewirkt .next() dass die nächste Datenzeile geholt wird.

mit rs.getString z.b. holst du aus der neuen Zeile dann den entsprechenden Wert. Der Parameter ist dabei der Index der Spalte.

List rows = new ArrayList<>();

was ist ist der unterschied zu

ArrayList<String> rows = new ArrayList<String>().

Das nennt sich Polymorphie: List anstatt der Spezifischen Klasse zu verwenden, verschafft dir den Vorteil bei Bedarf die Klasse welche die Instanz bildet unkompliziert austauschen zu können.

Des weiteren stehen dir nur Methoden zur Verfügung, die das Interface List hast.

Den Generics-Typen sollte man mit angeben um die Vorteile von Generics nutzen zu können, also:

List<String> oder List<Row>. wodurch du ausschließlich Elemente und erlebende Elemente von String oder Row an die Liste anfügen kannst. Genauso erhälst du beim get jeweils direkt ein String oder eine Row.

Da du ja mehrere Spalten hast, lohnt sich das oben aufgeführte Beispiel: Sprich, du baust dir eine Klasse als Datenhaltungsobjekt, welche diverse Eigenschaften annehmen kann, die du mit set befüllst und mit get Abfragen kannst. Dadurch kannst du mehrere Spalten einer Zeile in ein Objekt speichern und bei bedarf die Werte davon wieder abrufen.

0

php array als alert ausgeben

Hallo zusammen,

ich stehe gerade vor einem Problem, das mich in den Wahnsinn treibt.

Ich möchte den Inhalt eines php arrays in einer alert - box ausgeben. Also habe ich einfach mal standartmäßig eine Schleife mit dem array erstellt:

for ($i = 0; $i < $durchlauf; $i++) {
echo $ergebnis[$i] ."<br>"; 
}

Nun frage ich mich aber, wie ich den Inhalt, also $ergebnis, in einer alert - box ausgeben kann. Wenn ich es in die Schleife packe, kommt ja immer ein alert, für jeden Index.

Ich stehe gerade irgendwie auf dem Schlauch^^

Über Antworten wäre ich sehr dankbar!

Grüße, Hummel

...zur Frage

Java: Array soll eingegebene Parameter rückwärts zurückgeben

Hallo zusammen,

könnte ihr mir helfen, solchen Programm zu schreiben?:

Gesucht ist ein Programm, dass alle übergebenen Parameter in umgekehrter Reihenfolge ausgibt. (Die Länge eines Arrays steht automatisch im Attribut length des Arrays.)

Vielen Dank

...zur Frage

SQL Summe aller Spalten in Array speichern?

Hallo

Ich habe folgende Situation: Eine Tabelle (Produkte) die 6 Attribute/Spalten enthält (ID, Pro1, Pro2, Pro3, Pro4, Pro5), definiert als Integer. Nun habe ich ca. 20 Zeilen und möchte gerne die Summe jeder einzellnen Spalte in ein Array speichern. Ich habe gelesen, dass es mit dem SELECT SUM befehlt funktionieren müsse, verstehe aber nicht ganz, wie ich alle totalWerte in ein Array bekomme.

Dank für die Hilfe

...zur Frage

MySQL DB Spalte in Array speichern?

Hallo, wie kann ich eine Bestimmte Spalte bspw.

name

in ein einfaches Array abspeichern, dass ich auch außerhalb von while verwenden kann?also ein ganz normales Array z.B.

array("Wert1", "Wert2", "Wert3", "Wert4", "Wert5", "Wert6");

Das ganzen möglichst über PDO

...zur Frage

Java Array Hilfe?

wie kann ich ein Programm schreiben das eine liste von plz und orten einliest, eine plz beim Benutzer abfragt und den zugehörigen Ort ausgibt? und das ganze mit Arrays?

LG :)

...zur Frage

Was möchtest Du wissen?