Moeglichkeiten zum Speichern von Daten

daflowjoe

Mitglied
Hallo Leute,

mich wuerde mal interessieren wie man im professionellen Umfeld Daten speichert.

Ich kenne die folgenden Moeglichkeiten:

- Textdatei / CSV
- Serialisierte Objekte
- Datenbank

Ich habe teilweise "viele" Datenaetze (ca 10000). Eine Serialisierung waere fuer mich am bequemsten, Allerdings befuerchte ich, dass dies zu unperformant sein koennte.

Welche Methoden wuerdet ihr aus design -und performancetechnischer Sicht bevorzugen?
 

Ark

Top Contributor
Ehrlich: das ist eine viel zu allgemeine Frage.

Ich habe momentan ein Projekt, da sind fast 40000 Datensätze drin, und ich verwende so etwas wie CSV. In meinem Fall reicht das eben vollkommen aus. In deinem Fall könnte derselbe Ansatz völlig ungeeignet sein, selbst mit weniger Datensätzen.

Es kommt eher darauf an, ob die entsprechende(n) Datei(en) genau das und genau so abbildet/en, was und wie du es eben benötigst. Falls du schon das nicht weißt, solltest du dir erst einmal darüber im Klaren werden. Falls du es aber schon weißt, solltest du vielleicht sagen, was du speichern möchtest. Möglicherweise gibt es für deine Aufgabe schon standardisierte Formate, an die du dich halten könntest/solltest.

Serialisierung ist meines Erachtens eine ziemlich schlechte Möglichkeit, Daten persistent zu speichern.

Ark
 
Zuletzt bearbeitet:

daflowjoe

Mitglied
Also kontreter:

Ich moechte Buchungssaetze auswerten. Ich habe Datenstrukturen in Form von Listen, Buchungstabellen, Buchungsreports etc. die aber auch unterschiedliche Formate haben.
Salopp koennte man einfach sagen Listen und Tabellen.

Momentan sollen diese nur jeweils fuer einen User abgespeichert werden, (Staendiges Bearbeiten der Daten) Es sind aber auch mehrere "Profile angedacht", wo jede Strukur beliebig oft abgespeichert werden muss,

Warum sollte man keine Serialisierung verwenden?
 
Zuletzt bearbeitet:
N

nillehammer

Gast
Warum sollte man keine Serialisierung verwenden?
Ich persönlich finde Serialisierung als "poor man's persistence" garnicht schlecht, weil leicht zu programmieren. Doof ist nur, dass die Datenstruktur nur von Java interpretiert und geschrieben werden kann.
 

Bernd Hohmann

Top Contributor
Warum sollte man keine Serialisierung verwenden?

Wenn sich da in den letzten 10 Jahren nichts geändert hat: bei der Serialisierung einer Klasse wird eine Prüfsumme über die Komponenten einer Klasse errechnet und diese Prüfsumme wird bei der Objektserialisierung mit abgespeichert.

Dh. wenn Du in dem zu serialiserbaren Objekt (in der Regel eine Klasse) die Signatur durch zufügen/ändern/löschen einer Variablen oder zufügen/ändern/löschen einer Methode änderst wirst Du bei der deserialisierung gegen die Wand laufen.

Ich kann mich noch dumpf entsinnen, dass man das durch eine fixe SerialNumber für die Klasse und dann die Versionsunterschiede durch überschreiben von readObject(...) ausgleichen konnte.

Wenn Du tief in die Objektserialisierung von Java einsteigen möchtestr ist das ein gangbarer Weg.

Ansonsten würde ich sowas über Properties oder eine eigene Konstruktion erledigen.

Bernd
 

daflowjoe

Mitglied
Was ist eigentlich mit Hibernate? Ist das zu aufwendig fuer 150h Anwendung? Oder gibt es gaengige Bibliotheken die zum Beispiel eine ArrayList mit Objeken in XML serialisieren etc? Oder programmiert man das fuer jede Collection von Hand?
 
N

nillehammer

Gast
Hibernate oder noch abstrakter JPA ist ja nur eine Abstraktion der hier schon genannten Speicherung in Datenbanken. Ist auf jeden Fall eine gängige Variante. Ich mach das recht gerne. Es ist zwar anfänglich ein wenig Aufwand (das ganze Entity-Mapping und die DAOs). Aber dafür hat mein keine Sorgen mit konkurrierenden Zugriffen, inkonsistenten Daten nach abgebrochenen Transaktionen usw.
 
S

Spacerat

Gast
Serialisierung ist nicht gerade der beste Weg für persistente Daten. Ein Teil der Problematik wurde, wenn auch nicht so ganz korrekt, schon genannt.
1. Serialisierbare Objekte nebst ihren zur Serialisierung vorgesehenen Membern müssen Serializable implementieren.
2. Bevor ein Objekt in einen Stream serialisiert wird, wird dort zunächst der voll qualifizierte Klassenname und eine Prüfsumme hinein geschrieben und zwar für das Objekt selber und all seinen zu serialisierenden Member. Die Prüfsumme kann von der Klasse definiert werden (serialVersionUID) oder man lässt sie automatisch aus der Prüfsumme des Klassenbytecodes von der JVM berechnen.
3. Lässt man die Prüfsumme berechnen, lassen sich die serialisierten Daten nur von Versionsgleichen JVMs wieder lesen (Major-, Minorversion stehen im Bytecode) und man darf an der Klasse nichts mehr ändern, was die Prüfsumme des Bytecodes ändert wodurch alle bisher serialisierten Daten ungültig werden.
4. Die Deklarierung einer serialVersionUID ermöglicht, dass man alles an der Klasse ändern darf ausser die Daten, die bisher serialisiert wurden. Da darf nichts mehr hinzugefügt oder entfernt werden. Ferner lassen sich solche Objekte auch auf Versionsungleichen JVMs lesen, sofern dort eine entsprechende Klasse mit identischen Namen, serialVersionUID und serialisierten Membern existiert.

Serialisierung eignet sich deswegen (wenn überhaupt) eher für's Netzwerk als zur Speicherung in Dateien. "poor mans persistence" trifft's unheimlich. Ist einfach zu implementieren aber übelst zu warten. Die Dateien die bei einer Serialisierung entstehen sind wegen der zusätzlichen Speicherung der Klassennamen und Prüfsummen aller serialisierten Objekte und Unterobjekte natürlich stets wesentlich grösser.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste in Variable speichern Java Basics - Anfänger-Themen 6
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
G JTree speichern und wieder einlesen Java Basics - Anfänger-Themen 5
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
J Objekte in JSON speichern?? Java Basics - Anfänger-Themen 1
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
I Objekte in ShareProject speichern um später zu nutzen Java Basics - Anfänger-Themen 4
I Passwort in Datenbank speichern um später wieder auszulesen Java Basics - Anfänger-Themen 5
S mehrere TreeSets so speichern, dass man sie miteinander vergleichen kann Java Basics - Anfänger-Themen 1
I Datei (Bild) Drucken und wie Druckeinstellung speichern? Java Basics - Anfänger-Themen 3
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
M Werte in Felder speichern und geordnet ausgeben Java Basics - Anfänger-Themen 8
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
L Dauerhaftes Speichern einer Eingabe bei einer ArrayList Java Basics - Anfänger-Themen 26
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
T Permanentes speichern von Objekten in einer ArrayList Java Basics - Anfänger-Themen 6
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
I Historisierung - Alter Wert, Neuer Wert... wie speichern? Java Basics - Anfänger-Themen 44
berserkerdq2 Wie datum im default format speichern? Java Basics - Anfänger-Themen 5
M Objekt in einem Objekt speichern Java Basics - Anfänger-Themen 9
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
f3mys Objektwerte in Liste speichern und wieder abrufen Java Basics - Anfänger-Themen 23
I Liste von Infos von einer eigenen Annotation in Liste speichern Java Basics - Anfänger-Themen 0
U Wie ein Attribut von einer Klassenmethode in der Klasse speichern= Java Basics - Anfänger-Themen 2
B Screenshots machen und zwar viele und speichern Java Basics - Anfänger-Themen 12
C XML Datei speichern und laden Java Basics - Anfänger-Themen 18
Marlena Bauer Konsolenausgabe in .txt speichern Java Basics - Anfänger-Themen 6
B JaxB - Property vom Typ Object und LocalDateTime speichern? Java Basics - Anfänger-Themen 0
ansystin Teilerfremde Zahlen ausgeben + Zahlenausgabe speichern Java Basics - Anfänger-Themen 3
J Wert in einer json Datei ändern und speichern Java Basics - Anfänger-Themen 3
C File speichern Java Basics - Anfänger-Themen 5
D String und char in String speichern Java Basics - Anfänger-Themen 5
J Alle .java Dateien von einem Verzeichnis in eine Zip speichern Java Basics - Anfänger-Themen 2
I Werte (u.a. Geldbeträge) in Datenbank speichern und Rundungen? Java Basics - Anfänger-Themen 8
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
B JaxB - speichern vom Typ "Object" Java Basics - Anfänger-Themen 8
GermanPie Nachrichten Speichern Java Basics - Anfänger-Themen 2
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
C Wo Defaultpfad speichern? Java Basics - Anfänger-Themen 2
M Integer aus aus einer Klasse in andere speichern Java Basics - Anfänger-Themen 12
Dimax stream in string[] speichern Java Basics - Anfänger-Themen 6
H Liste speichern. Was lässt sich verbessern? Java Basics - Anfänger-Themen 7
C Fehler beim Speichern (Build projekt) Java Basics - Anfänger-Themen 42
J Ich brauche Hilfe bei einem Code (Variablen speichern) Java Basics - Anfänger-Themen 29
C Verschiedene Objekte in einer Liste speichern Java Basics - Anfänger-Themen 6
D Input/Output Input von zwei Koordinaten validieren und anschließend Werte speichern Java Basics - Anfänger-Themen 7
N Speichern von Werten in Variablen nach Schließen des Programms Java Basics - Anfänger-Themen 3
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
I ArrayList - Methode zum Speichern eines Eintrags in einer Datei Java Basics - Anfänger-Themen 17
H Objekt im Array speichern Java Basics - Anfänger-Themen 2
H Objekt als Attribut speichern Java Basics - Anfänger-Themen 11
B Text-Datei nur in Stream speichern und dann ausgeben Java Basics - Anfänger-Themen 3
M JTextField in ArrayList speichern Java Basics - Anfänger-Themen 4
L Nur Bestimmte Werte aus einem Array in ein anderes Speichern Java Basics - Anfänger-Themen 11
S Zweidimensionales Array in ein eindimensionales Array speichern Java Basics - Anfänger-Themen 6
A Wie zwei zahlen in einer Variable speichern? Java Basics - Anfänger-Themen 7
C ResultSet in Array speichern Java Basics - Anfänger-Themen 5
S Byte-Array kann chars speichern? Java Basics - Anfänger-Themen 3
J Kann man files in einer Klasse speichern. Java Basics - Anfänger-Themen 2
B Infos zu Attribute in einer Klasse speichern Java Basics - Anfänger-Themen 3
M Input/Output JTextField Eingabe in String Variable speichern Java Basics - Anfänger-Themen 15
A Kann man eine Methode als Variable speichern und danach noch verändern? Java Basics - Anfänger-Themen 6
D Werte aus einem BinärBaum in einem Array speichern Java Basics - Anfänger-Themen 1
I Datei in Programm speichern Java Basics - Anfänger-Themen 3
A .txt-Datei mit Java speichern Java Basics - Anfänger-Themen 2
M Speichern unter. Java Basics - Anfänger-Themen 11
S Java Daten in Excel speichern Java Basics - Anfänger-Themen 1
S Daten speichern, ohne Datenbank Java Basics - Anfänger-Themen 8
L Objekt aus Textdatei in ArrayList speichern Java Basics - Anfänger-Themen 4
L Kommandozeileneinträge in Array speichern Java Basics - Anfänger-Themen 4
B HTML Code in XML speichern Java Basics - Anfänger-Themen 3
G Benutzereingaben durch Zeilenumbruch trennen und in Array individueller Größe speichern Java Basics - Anfänger-Themen 20
G JTextField per Button speichern und an andere Klasse übergeben Java Basics - Anfänger-Themen 2
Shallty Daten speichern und ändern? Java Basics - Anfänger-Themen 32
R Objekte aus Array als String + kommasepariert speichern Java Basics - Anfänger-Themen 12
N Best Practice Rückgabe eines Terminal Befehls in eine Variable speichern Java Basics - Anfänger-Themen 27
B XML in DB speichern -> Regelkonzept Java Basics - Anfänger-Themen 2
T Daten von Objekten speichern Java Basics - Anfänger-Themen 7
A Einträge aus Tupeln nach Regeln in Liste speichern Java Basics - Anfänger-Themen 8
void19 Methoden Binärbaum Inorder Traversierung in Array speichern Java Basics - Anfänger-Themen 1
X TextField-Inhalt mit Button in .txt-Datei speichern Java Basics - Anfänger-Themen 16
C Methoden Problem beim Speichern von Variablen Java Basics - Anfänger-Themen 1
J Geld speichern und wieder auslesen Java Basics - Anfänger-Themen 10
K Geburtsdaten von Mehreren Personen speichern und Alter ausgeben Java Basics - Anfänger-Themen 11
F Beste Datenstruktur zum Speichern? Java Basics - Anfänger-Themen 1
Dimax Programme ,als Text in MySql speichern Java Basics - Anfänger-Themen 7
C Erste Schritte ArrayIndexOutOfBoundsException beim Speichern im Array Java Basics - Anfänger-Themen 2
D Datei auslesen & Werte in Variable speichern Java Basics - Anfänger-Themen 12
D Erste Schritte Projekt in Ecplise in einer .zip Datei speichern Java Basics - Anfänger-Themen 8
L Speichern und Laden Java Basics - Anfänger-Themen 7
I Projekt als .jar Datei speichern - Bilder werden nicht mehr angezeigt Java Basics - Anfänger-Themen 4
H MouseListener begrenzen und Speichern Java Basics - Anfänger-Themen 1
M Wie kann ich im JAVA-GUI im Textfeld ein Array speichern Java Basics - Anfänger-Themen 4
N Veränderungen dauerhaft speichern Java Basics - Anfänger-Themen 3
M Int und Double in Array speichern Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben