Generelle Frage zum Umgang mit Datensätzen

Darokh

Mitglied
Hi,
ich habe ein paar generelle Frage zum Umgang mit Daten aus Datenbanken.

Ich hole Datensätze aus einer Datenbank, die ja dann in ResultSets gespeichert werden.

1. Ist es "üblich", mit den ResultSets weiterzuarbeiten, oder werden diese Daten dann nochmals in Vektoren oder ähnliches überführt, weil im Nachhinein dort besser mit gearbeitet werden kann? Wenn ja, welche, und warum?

2. Wenn ich nun mit Schleifen arbeite, um bestimmte Felder dynamisch zu füllen und dort gleichzeitig mehrere Tabellen über Fremdschlüssel miteinander verbunden habe:

Bietet es sich nun an, PRO Schleife eine eigene Abfrage zu generieren (das kostet doch bestimmt viel Rechenleistung) oder eher eine ganze Tabelle über SELECT * reinzuholen, um dann die entsprechenden Schleifen ablaufen zu lassen?

Ich erstelle gerade mit einem JTree eine Übersicht über bestimmte Daten, und da bin ich mir nicht sicher, ob ich für jeden Knoten eine Abfrage generieren sollte oder alles ein mal Herschaufel und dann intern damit weiterarbeiten sollte.


3. Oder gibt es dazu eine Alternative, die ich nun als Anfänger noch nicht kenne. Dann wäre ich über ein oder zwei Schlagwörter ganz glücklich.


Vielen Dank und lieben Gruß,
Darokh
 

VfL_Freak

Top Contributor
Moin,

Ich hole Datensätze aus einer Datenbank, die ja dann in ResultSets gespeichert werden.
1. Ist es "üblich", mit den ResultSets weiterzuarbeiten, oder werden diese Daten dann nochmals in Vektoren oder ähnliches überführt, weil im Nachhinein dort besser mit gearbeitet werden kann?
Wenn ja, welche, und warum?
IMHO hängt das davon ab, was mit den Daten passieren soll !

2. Bietet es sich nun an, PRO Schleife eine eigene Abfrage zu generieren (das kostet doch bestimmt viel Rechenleistung) oder eher eine ganze Tabelle über SELECT * reinzuholen, um dann die entsprechenden Schleifen ablaufen zu lassen?
Ob Du die ganze Tabelle auf einmal einlesen kannst, hängt wohl von deren Größe ab.
Bei bspw. 100.000 Datensätzen würde ich eher davon abraten, da Du anschließend alles im Speicher halten musst, was dann ggf. eng wird, wie ein Kollege hier gerade leidvoll erfahren muss ;)

Bei "kleineren Mengen" würde ich das aber machen und dann satzweise abarbeiten!

Gruß
Klaus
 
S

SlaterB

Gast
1.
das sieht man schon daran dass manche oder alle höheren Frameworks wie Hibernate kein ResultSet oder vergleichbares zurückgeben
sondern List<Object[]>, Iterator, oder Bean-Klassen statt Object[] falls vorhanden,

ein Grund, wie im letzten Thread genannt: Trennung von Code, niemand will wissen wo die Daten herkommen, ob aus Textdatei, DB, Benutzereingabe, Zufallsgenerator,
Daten sind genau Daten, also, int, String, evtl. relevante Datenklassen, zur Verpackung Arrays, Listen, Maps usw.

wenn du auf eine andere API als ResultSet umstellst, etwa Hibernate,
dann sollte das besser nicht GUI-Klassen oder sonst wie Beteiligte stören,
 

turtle

Top Contributor
Ich schlag vor, dass Du Dir mal meinen Blog-Eintrag durchliest als Beispiel von ORM (Objekt Relationales Mapping) am Beispiel von myBATIS.

Der Vorteil hierbei ist, dass Du genau weisst welche SQL-Befehle gegen die DB geschickt werden.

Damit würde sich Deine Idee verbieten, in einer Schleife jedesmal Befehle gegen die DB zu feuern. SQL ist Mengen-orientiert, also sollte man auch versuchen viele Records auf dem DB-Server gleichzeitig behandeln zu lassen.

Dies auf dem Client zu tun verbietet sich ja schon häufig wegen der Anzahl der Records, das wurde ja bereits erwähnt, und das vielen Daten über die Leitung "wandern" müssen, um dann bearbeitet zu werden (Performance). Und wenn dann die Bearbeitung darin besteht gleich einen weiteren SQL-Befehl abzuschicken, sollte dies, wenn möglich, stattdessen auf dem Server gemacht werden.

Muss man aber trotzdem über sehr grosse Tabellen iterieren, bietet myBATIS das Konzept des ResultHandlers, mit dem nur EIN Record im Client gehalten wird.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F generelle Vorgehensweise ResultSet Datenbankprogrammierung 5
M Frage zu Bundesliga-DB Datenbankprogrammierung 1
pkm Frage zu Encodingproblem bei einer Datenbankanbindung Datenbankprogrammierung 1
B Frage bei einer SQL Query Datenbankprogrammierung 3
B Frage zu Datenbank Design bei Events (ZenDesk) Datenbankprogrammierung 1
B SQLite Frage zu SQLite Datenbankverbindung Datenbankprogrammierung 7
M Frage zu JSON Datenbankprogrammierung 16
Psypsy Hibernate / JPA OneToOne MappedBy Frage Datenbankprogrammierung 2
P Frage zu Connection.close() Datenbankprogrammierung 4
R MySQL Frage zum Anlegen von Artikeln inkl. Verbindungen Datenbankprogrammierung 0
M Grundlegende Klassen-Design Frage Datenbankprogrammierung 0
P MySQL Frage zur Einbindung in ein Java Projekt Datenbankprogrammierung 2
I Frage zu Datenmodellierung Datenbankprogrammierung 3
J Normalisierung - Allgemeine Frage zur 3. Normalform (Eventuelle Abhängigkeit) Datenbankprogrammierung 4
F Normalisierung Datenbank Frage Datenbankprogrammierung 5
J Frage zu ResultSet Datenbankprogrammierung 3
W Frage zur Datenbankwahl bei Umstieg auf Java Datenbankprogrammierung 7
D Frage zu DISTINCT in SQL Datenbankprogrammierung 5
K Frage zur Datenprotokollierung bei DML Anweisungen Datenbankprogrammierung 3
K Frage zu SQL Datenbankprogrammierung 2
L PostgreSQL Hibernate-Frage Datenbankprogrammierung 2
K Frage zu Datenbankmodellierung Datenbankprogrammierung 15
L Frage zu UpdateQuery Datenbankprogrammierung 12
8 MySQL Kurze Frage zur Sicherheit Datenbankprogrammierung 9
D Frage zu INSERTS über mehrere Datenbanktabellen Datenbankprogrammierung 3
D Frage zu Ausführungsmöglichkeiten von SQL Befehlen Datenbankprogrammierung 13
D Frage zu SQL Syntax Datenbankprogrammierung 17
D Frage zu potenziellen Leerzeichen in einer Datenbank Datenbankprogrammierung 5
X Connection schließen oder speichern? Performance Frage Datenbankprogrammierung 7
J mal wieder eine Frage zu parallelen Transaktionen.. Datenbankprogrammierung 2
V Frage zu Hibernate-Mapping Datenbankprogrammierung 11
N Allg. Frage zur Datenbankverbindung Datenbankprogrammierung 2
E einfache Frage bei DB-Zugriff Datenbankprogrammierung 11
S MySQL Frage zu LeftJoin Abfrage Datenbankprogrammierung 2
O eigentlich simple SQL Frage Datenbankprogrammierung 2
M Frage zu folgender Query in EJB-QL Datenbankprogrammierung 4
H JBoss: Frage zur Datasource in der ...-ds.xml Datenbankprogrammierung 4
F Frage zu Prepared Statement Datenbankprogrammierung 2
R hibernate Frage zu configFile-Pfad und Groß/Kleinschreibung von Postgres-Tabellen Datenbankprogrammierung 8
U Frage zum Erfassen von hinzufügten und entfernten Objekten Datenbankprogrammierung 9
M prinzipielle Frage zu Datenbanken und jars ... Datenbankprogrammierung 2
S Hibernate - spezielle Frage, n zu n Beziehung Datenbankprogrammierung 11
R Frage zu PreparedStatement/ResultSet Datenbankprogrammierung 16
J Frage zu Synchronisation bei parallelem Zugriff, speziell mit JPA Datenbankprogrammierung 2
F EclipseLink persistence.xml Frage Datenbankprogrammierung 11
N Frage zur Sicherheit von Konfigurationsdatei Datenbankprogrammierung 4
H performance frage Datenbankprogrammierung 9
G Frage zum Insert-Statement Datenbankprogrammierung 2
Antoras Design-Frage: Datenzuordnung zu verschiedenen Accounts Datenbankprogrammierung 2
T HSQL: verständnis Frage Datenbankprogrammierung 2
T Java JPA Frage bzgl. DISTINCT Datenbankprogrammierung 2
G Frage zu connection? Datenbankprogrammierung 9
A Frage zu SQL-Abfrage Datenbankprogrammierung 2
G Frage zu SQL "WHERE IN (1, 2, 3. , N)" Datenbankprogrammierung 8
G Allgemeine Frage zu Datenbanklimits Datenbankprogrammierung 27
G allgemeine JDBC-Connection Frage Datenbankprogrammierung 2
G Frage zu Hibernate und M:N Beziehung Datenbankprogrammierung 9
K HQL Frage Datenbankprogrammierung 10
D kurze Frage zu einem Query Datenbankprogrammierung 6
B Hibernate mit MySql - Verständniss Frage Datenbankprogrammierung 8
N Kleine Frage zu Connection Pooling mit DataSource Datenbankprogrammierung 2
T Update-Frage Datenbankprogrammierung 11
E SQL-Frage (Löschen aller Datensätze) Datenbankprogrammierung 9
P Frage zu Performancetest einer Datenbank Datenbankprogrammierung 3
W Frage zum Umgang mit DB-Daten Datenbankprogrammierung 2
E Nochmal eine Datenbankabfrage Frage :-o (JOIN oder so) Datenbankprogrammierung 4
P frage zu "" bei INSERT STATEMENTS Datenbankprogrammierung 2
K frage zum ausführen eines INSERT statements Datenbankprogrammierung 16
L frage zu mySQL Datenbankprogrammierung 4
C Mal ne Frage an die Experten Datenbankprogrammierung 4
G Frage zum Datenbankdesign Datenbankprogrammierung 5
J DB Verbindung Design Frage Datenbankprogrammierung 5
M Datenbankanbindung in Java : Newbie-Frage Datenbankprogrammierung 2
U Grundsätzliche Frage Datenbankprogrammierung 4
S Frage zu INSERT Datenbankprogrammierung 2
X Wieder mal ne Frage ... Datenbankprogrammierung 15
D Umgang mit Typen und Subtypen im Datenmodell Datenbankprogrammierung 3
D Richtiger Umgang mit Verbindungen in JPA Datenbankprogrammierung 39
R MySQL Umgang mit ResultSet/Fremdschlüssel ausgeben Datenbankprogrammierung 2
A Umgang mit hsqldb Datenbankprogrammierung 24

Ähnliche Java Themen

Neue Themen


Oben