ResultSet

Status
Nicht offen für weitere Antworten.

Monalieschen

Mitglied
Hallo,

ich habe das Ergebnis von nem ResultSet (allerdings nur zwei Spalten) in einer Tabelle dargestellt. Per Klick auf eine Zeile der Tabelle, möchte ich nun den kompletten Datensatz ausgeben, der im ResultSet steht. Wie komme ich an den entsprechenden Datensatz im ResultSet ran? mit next() geht das schließlich nicht. Gibt es sowas wie moveToZeile(int a)?

Schönen Abend noch,

Daniela
 

bambi

Bekanntes Mitglied
Mhhh, benutzt Du wirklich das ResultSet? Das sollte man eigentlich nicht machen, denn solange das ResultSet
existiert, wird die DB-Verbindung auch offen gehalten. (Soweit ich weiss... bitte berichtigen, wenn's doch nicht stimmen
sollte.)

Im Allgemeinen liest man die Daten des ResultSet und speichert sie in einer anderen Form ab. Meinstens werden da
JavaBeans verwendet (pro Datensatz eine Bean), die dann in Arrays oder ArrayLists oder... gespeicher werden. Da
gibt's 'ne Menge Moeglichkeiten. Das hat auch den Vorteil, dass Du dann einfach sagen koenntest - wenn Du den ganzen
Datensatz haben willts:
Code:
MyDaten daten = arrayList.get(a);
Da haettest Du dann einfach alle Daten des Datensatzes an Stelle a...

Waere das eine Moeglichkeit fuer Dich?
 

Monalieschen

Mitglied
bambi hat gesagt.:
Mhhh, benutzt Du wirklich das ResultSet? Das sollte man eigentlich nicht machen, denn solange das ResultSet
existiert, wird die DB-Verbindung auch offen gehalten. (Soweit ich weiss... bitte berichtigen, wenn's doch nicht stimmen
sollte.)

...

Waere das eine Moeglichkeit fuer Dich?

Ja, ich nehm das ResultSet, aber dann halt mit nem Array. Ich dachte, das könnt ich vermeiden, aber denn eben nich. Vielen Dank für deine Hilfe. Wie lange existiert denn eigentlich das ResultSet? Wie schließ ich die DB-Verbindung?

Daniela
 

bambi

Bekanntes Mitglied
Also hier ein Beispiel wie ich's normalerweise mache... (Gibt sicher noch 'ne Menge anderer...)

Code:
private ArrayList getPersons() {

        List resultList = new ArrayList();

        // Daten fuer die Verbindung zur DB erzeugen
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        
        // SQL-Query erzeugen
        String queryStatement = getPersonQuery();
        
        // Daten von DB holen
        try {
            conn = getConnection();
            stmt = conn.createStatement();
            rs = stmt.executeQuery(queryStatement);
            
            // Retrieve all record values and generate a 
            // JavaBean for each person.

            String personNumber = null;
            String name = null;
            
            while (rs.next()) {
                personNumber = rs.getString(1);
                name = rs.getString(2);
                
                resultList.add(new MyJavaBean(personNumber, name));
            }
        } catch(SQLException se) {
            System.out.println("SQL Exception during querying the database " + se.toString());
        } finally {
            // ResultSet, Statement und Connection schliessen
            if (rs != null)  {
                rs.close();
            } if (stmt != null)  {
                stmt.close();
            }

            conn.close();
        }
        return resultList;
}

Das Ganze ist jetzt eine kleine Verallgemeinerung meines Codes - ungetestet daher. Die Connection sollte immer
im finally geschlossen werden, da es sonst ganz boese Probleme geben kann - wirklich boese, glaub' mir :roll:
Ansonsten koennt' man zum Beispiel noch einiges einfacher machen (vielleicht auch etwas performanter) - wenn man
zum Beispiel die Variablen an dieser Stelle weglaesst und direkt die Daten schreibt:
Code:
           while (rs.next()) {
                   resultList.add(new MyJavaBean(rs.getString(1), rs.getString(2)));
            }
Dachte nur, dass es fuer's Beispiel etwas einfacher ist...

Hoffe es hilft etwas weiter. Sag bescheid, wenn Du Fragen dazu hast.
 

Bleiglanz

Gesperrter Benutzer
Hinweis:

ResultSet kennt das konzept "des aktuellen Datensatzes" nicht

im wesentlichen ist das ein Zeiger, den du mit next() bewegen kannst und der dann auf "der aktuellen Zeile" steht

in der aktuellen Zeile musst du dann die spalten mit den diversen getXXX abholen

was du willst ist wohl ein SCROLLABLE Resultset
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
A Erste Schritte Weiterverarbeitung Resultset Java Basics - Anfänger-Themen 12
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 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