[FRAGE] Grundverständnis zu JAVA Serialisierung mit XML

minirakete

Grünschnabel
Hallo!

Ich habe so meine Schwierigkeiten mit der Programmierung. Wir haben ein Software-Projekt, wo wir uns jetzt darauf geeinigt haben eine Datenbank mit Serialiserung zu verfassen Nur da ich überhaupt kein JAVA-Crack bin, erachtet es sich für mich als ein großes Hindernis. Ich möchte meine Gruppe aber nicht im Stich lassen und wirklich Aktiv daran mitarbeiten!

Allgemein hat sich das Wissen bei mir verankert, das eine Datenbank aus einer Tabelle besteht, zB. mit SQL. Dort habe ich dann expliziete Daten, die ich mir auch ansehen kann.

Nun habe ich mich versucht in die Serialisierung reinzufinden und einige Seiten durchforscht, aber ich verstehe immer noch nicht, wie dort zum Beispiel eine Person mit all ihren Attributen abgelegt wird. Es sind meist immer nur so kleine Beispiele wie bei Galileo-Open-Book, wo zum Beispiel der Tag "Today" hineingeschrieben wird und das wars.

Kann mir jemand vielleicht in einfachen, gut verdaulichen Sätzen erklären wie so eine Serialisierung abläuft? Wenn ich jetzt Personen habe mit Attributen wie: ID, Name, Vorname, Gender, etc pp., wie bekomme ich eine Klasse so geschrieben, dass belibig viele Personen hinzugefügt werden können? Wie baue ich da Funktionen ein wie Load und Save?

Ich stehe echt komplett aufm Schlauch und würde mich sehr über Hilfe freuen. Gerne auch in der Art "Serialiserung für DUMMIES".
Lieber Gruß!

PS: Es sind unter anderem Begriffe wie Persistenz, Serializable und Annotation gefallen...und wir arbeiten mit der Entwicklungsumgebung ECLIPSE
 

slowfly

Erfahrenes Mitglied
Salü

Genau beschrieben wäre es wohl hier "Java Object Serialization Specification":
http://docs.oracle.com/javase/6/docs/platform/serialization/spec/serialTOC.html

Um dir einen Überblick zu beschaffen, ist die JavaDoc fürs Serializable Interface sehr gut:
http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html

Aber kurz zusammengefasst:
Willst du Objekte serialisieren, zum Beispiel um sie auf die Platte zu speichern, oder sie übers Netz zu versenden, nimmt man ObjectInputStream (um zu lesen) und ObjectOutputStream (um zu schreiben). Die Objekte, die du serialisieren willst, müssen Serializable implementieren. Serializable wird nur benötigt, um Objekte zu identifizieren, welche serialisiert werden können, ansonsten kann das Ding eigentlich nicht viel mehr.

Kann mir jemand vielleicht in einfachen, gut verdaulichen Sätzen erklären wie so eine Serialisierung abläuft?
Beispielcode:
Code:
public class Person implements Serializable {
	private static final long serialVersionUID = 801260953474177669L;

	private Long id = 1l;
	private String firstname = "slow";
	private String lastname = "fly";

	public static void main(String[] args) {
		Person p = new Person();
		try {
			ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("c:\\temp\\test.txt"));
			out.writeObject(p);
			out.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

Inhalt von test.txt:
Code:
¬í sr ch.coop.websctb.dao.jdbc.Person¦—ˆ8… L 	firstnamet Ljava/lang/String;L idt Ljava/lang/Long;L lastnameq ~ xpt slowsr java.lang.Long;‹äÌ#ß J valuexr java.lang.Number†¬•”à‹  xp       t fly

Gruss
slowy