Erste Schritte Weiterverarbeitung Resultset

A

AliceSteiner

Gast
Hallo liebes Javavolk,

ich arbeite mich gerade in den Datenbankbereich ein.
Die Abfragen einer DB landen alle in einem Resultset.
Die Ausgabe des Resultset ist überall beschreiben.
Nur wie verarbeite ich das am besten weiter?
(Ja, es kommt auf den Zweck drauf an).
In PHP landet meistens alles in einem mehrdimensionales array. Hier kann ich dann
einfach beliebige Spalten weiterverarbeiten.
Was bietet sich in java an? Wenn ich zum Beispiel Daten in die GUI schreiben will, oder einfach nur Berechnungen durchführen will.
Was ich gelesen habe, wäre eine Lösung eine ArrayList.

Freu mich über Antworten
Alice
 
G

Gast2

Gast
In der Regel erstellst du aus den Einträgen des ResultSets Objekte. Ließt du Beispielsweise eine Tabelle aus, die "Buch" heißt, dann wirst du daraus in deinem Programm wohl Buch-Objekte machen. Die kannst du dann in deinem Programm weiterverarbeiten.
 
A

AliceSteiner

Gast
Ich suche vergeblich nach Infos zu Result Set und Objekten. Ist nicht so einfach wie bei PHP.

Vermutlich habe ich auch eine falsche Struktur. Für die Datenbank habe ich eine eigene Klasse die aus dem Zugriff und Methoden zum Auslesen besteht. In der Klasse Kontroller habe ich ein Datenbankobjekt erzeugt und möchte nun die Daten aus der Datenbank zur weiterverwendung ziehen.
Die Beispiele hören alle mit einer Schleife und dem Anzeigen des Resultset auf.

Vielleicht hat mir noch jemand Tipps?

Nächtliche Grüße
Alice
 

bERt0r

Top Contributor
Du machst dir für jede Tabelle eine Klasse. Für jeden Datensatz den du dann in deinem ResultSet ausliest, erstellst du ein Objekt dieser Klasse und füllst es mit den Daten aus dem ResultSet. Das Objekt packst du dann am besten in eine Collection z.B eine List (Java Platform SE 7) oder eine Map (Java Platform SE 7 ).
Mit einer Collection kannst du dann ziemlich bequem weiterarbeiten.
 
A

AliceSteiner

Gast
Müsste ich da nicht für jeden Datensatz ein Objekt anlegen?
Oder wie muss ich das verstehen?

Ich hab da folgenden Schnippsel:
Java:
do {
                rs = pst.getResultSet();

                while (rs.next()) {
                    System.out.print(rs.getInt(1));
                    System.out.print(": ");
                    System.out.println(rs.getString(2));
                }

                isResult = pst.getMoreResults();
            } while (isResult);

Anstatt System.out.print müsste ich die Daten irgendwas übergeben.
Ich such jetzt schon stundenlang in google. Aber glaubt man nicht das es hier keine
Beispiele gibt.

Ich habe jetzt eine Klasse Person gebastelt.

Java:
public class Person {
    
    private String name;
    private String vorname;
    private String telefon;

    public void setName(String name) {
        this.name = name;
    }

    public void setVorname(String vn) {
        this.vorname = vn;
    }
    public void setTelefon(String telefon) {
        this.telefon = telefon;
    }
   
}

Jetzt erzeuge ich in meiner anderen Klassen ein objekt.
Java:
Person hans = new Person();

do {
                rs = pst.getResultSet();

                while (rs.next()) {
                    System.out.println(rs.getString(1));
                    System.out.print(": ");
                    System.out.println(rs.getString(2));
                    System.out.print(": ");
                    System.out.println(rs.getString(3));
                  
                }

                isResult = pst.getMoreResults();
            } while (isResult);

Und jetzt hört mein Verständnis auf. Ich müsste doch für jeden Datensatz ein Objekt erzeugen?

Gruß von der verzweifelten Alice.
 
A

AliceSteiner

Gast
Ok.
Noch was fürs Verständnis:
Ich habe zum Beispiel einen Button. Immer wenn dieser Button gedrück wird, lese ich die Daten aus der Datenbank und erzeuge hier neue Objekte. Jetzt schwankt die Anzahl der Datensätze. Vorher hatte ich 89 Objekte und jetzt sind es nur noch 82. Da liegen jetzt doch 5 Objekte rum, die sich immer noch z.B. in einer ArrayList liegen. Gut, die ArrayListe leere ich vorher. Aber was passiert mit den 5 alten Objekten?

Gruß
Alice
 

ARadauer

Top Contributor
so zb

Java:
public List<Person> readAllPersons() {
		List<Person> personList = new ArrayList<Person>();

		// ... hier rs lesen...
		rs = pst.getResultSet();

		while (rs.next()) {
			Person p = new Person();
			p.setName(rs.getString(1));
			p.setVorName(rs.getString(2));
			p.setAdresse(rs.getString(3));

			// oder natürlich sowas
			p.setAdresse(rs.getString("adresse"));

			personList.add(p);

		}
		return personList;

	}

findest das umständlich, das für alle felder immer machen zu müssen? dafür gibts dann ORM wie hiberante oder JPA. Wobei diese Dinge leider oft sehr komplex sind. Für den Anfang ist das oben aber ok...
 
A

AliceSteiner

Gast
Hi,

danke für die Antwort. Hat mir weitergeholfen.

Nun greife ich von der einer anderen Klasse auf die Datenbankklasse und
frage mich nun was ich mit der Liste anfange.
Übergebe ich das an eine List der eigenen Klasse oder nehme ich die Methode aus der Datenbanklasse.
Was hat das für Vor- und Nachteile?

Gruß
Alice

Brauch jetzt erstmal einen Kaffee.
 
A

AliceSteiner

Gast
Mann bin ich müde.
Trotz Java in flüssiger Form :)

Ich komme das irgendwie nich in Pötte. Ist halt doch ne Männersache.

Java:
for(Iterator <Person> ps = db.getSortierteListe().iterator(); it.hasNext();) {
				System.out.println("debug: "+ it.next().toString());
			}

Wenn ich das durchführe bekomme ich immer nur 10 mal den gleichen (letzten Wert aus der DB) angezeigt. Vermutlich geht das doch nur wenn ich die List aus der Methode einer List der eigenen Klasse zuweise????

Gruß
Alice
 
A

AliceSteiner

Gast
Das wars.
Ich habe den Code von oben genommen und an die Objekterzeugung an der falschen Stelle platziert.

Danke
Alice
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
m0mo Regulaere Ausdruecke und Weiterverarbeitung Java Basics - Anfänger-Themen 3
N ResultSet auf Einträge überprüfen Java Basics - Anfänger-Themen 5
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
C ResultSet in Array speichern Java Basics - Anfänger-Themen 5
S NullPointerException während ResultSet Java Basics - Anfänger-Themen 7
J MySQL Datumsabfrage über ResultSet in Java-Servlet Java Basics - Anfänger-Themen 4
A Werte innerhalb von resultset vergleichen Java Basics - Anfänger-Themen 2
H Variablen Zeile aus einem ResultSet ausleesen Java Basics - Anfänger-Themen 7
P Brauche Hilfe bei ResultSet mit MySQL Java Basics - Anfänger-Themen 6
A ResultSet: vorheriges Element auslesen Java Basics - Anfänger-Themen 10
1 ResultSet in Schleife "befüllen" Java Basics - Anfänger-Themen 4
K ResultSet.last() und die GUI friert ein Java Basics - Anfänger-Themen 2
K Methoden ResultSet als Methodenübergabewert kommt leer an Java Basics - Anfänger-Themen 0
S JTabel korrekt mit Datensätzen aus ResultSet füllen Java Basics - Anfänger-Themen 4
S Icons in JTable per ResultSet Java Basics - Anfänger-Themen 5
S ResultSet close() in funktion nich möglich. Java Basics - Anfänger-Themen 8
G ResultSet übergeben bzw. in andere Variable übernehmen Java Basics - Anfänger-Themen 6
J ResultSet.getStrin - doch kein String? oder wo liegt das Problem? Java Basics - Anfänger-Themen 3
R JDBC leeres ResultSet Problem Java Basics - Anfänger-Themen 2
S ResultSet in CSV speichern Java Basics - Anfänger-Themen 3
C Resultset.updateBinaryStream Java Basics - Anfänger-Themen 2
S mysql-connector-java-*.jar, MySql ResultSet - Alle ROWs ausgeben? Java Basics - Anfänger-Themen 3
M Frage zu ResultSet.next() Java Basics - Anfänger-Themen 7
S Resultset Closed (Mysql) Java Basics - Anfänger-Themen 5
C OOP JDBC: Ausgabe ResultSet nach Select Java Basics - Anfänger-Themen 3
G ResultSet SQLException Java Basics - Anfänger-Themen 11
K Problem mit ResultSet Java Basics - Anfänger-Themen 9
A Probleme mit dem ResultSet Java Basics - Anfänger-Themen 6
S bestimmtes Auslesen von Spalten eines ResultSet ? Java Basics - Anfänger-Themen 7
T ResultSet Exception Java Basics - Anfänger-Themen 2
M ResultSet Problem Java Basics - Anfänger-Themen 5
S aus Resultset JTabbedPane erzeugen Java Basics - Anfänger-Themen 5
G Frage zu ResultSet Java Basics - Anfänger-Themen 4
A "SQL : No resultSet was produced" ? Java Basics - Anfänger-Themen 7
G ResultSet & JTable Java Basics - Anfänger-Themen 4
K problem mit resultset und 2d-array Java Basics - Anfänger-Themen 3
G ResultSet übergeben Java Basics - Anfänger-Themen 2
K ResultSet öffnet sich garnicht erst Java Basics - Anfänger-Themen 9
M ResultSet Java Basics - Anfänger-Themen 4
M ResultSet als Objekt zurückgeben, wenn conn geschlossen? Java Basics - Anfänger-Themen 8
K ResultSet: Wie viele Rows beinhaltet es? Java Basics - Anfänger-Themen 6
A ResultSet Zeile als Objekt? Java Basics - Anfänger-Themen 10
G ResultSet getRow Java Basics - Anfänger-Themen 4
T Ganz schlimme Frage.:) ResultSet Java Basics - Anfänger-Themen 12
G ResultSet zurückgeben Java Basics - Anfänger-Themen 11
B Probleme bei ResultSet in einer While-Schleife Java Basics - Anfänger-Themen 2
M ResultSet klonen Java Basics - Anfänger-Themen 6
M ResultSet abfragen Java Basics - Anfänger-Themen 8
R In ResultSet Anzahl der Zeilen herausfinden? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben