# Mit Java Data Objects Daten in einer MySQL-Datenbank manipul



## marco-142 (19. Jul 2006)

Hallo,

ich habe im Rahmen meines Studiums der Wirtschaftsinformatik an der FH Frankfurt a.M. die Aufgabe bekommen eine Arbeit über Java Data Objects zu verfassen.
Meine Aufgabe ist es nun, anhand einer MySQL-Datenbank, in der Adressdaten gespeichert sind, ein Beispiel zu programmieren.
Ich wollte mit Hilfe von JDO einen Datensatz auslesen, einen Datensatz verändern und einen Datensatz neu hinzufügen.

Kennt sich vielleicht jemand mit JDO aus und kann mir dabei weiterhelfen??

Vielen Dank schonmal,

mit freundlichen Grüßen

Marco Müller

P.S.: bin kein guter Programmierer,    , erklärt es also bitte so, dass es auch ein Anfänger versteht, wenn möglich. Danke!


----------



## foobar (19. Jul 2006)

> P.S.: bin kein guter Programmierer


Das hätte ich von einem Wirtschaftsinformatiker auch nicht erwartet.

Was genau ist denn das Problem? Was funktioniert nicht? Ansonsten wir machen keine Hausaufgaben.


----------



## AlArenal (19. Jul 2006)

Welche JDO-Implementierung benutzt du denn? Wenn man die Tutorials und so der bekanntesten Vertreter mal überfliegt, machen die doch einen brauchbaren und guten Eindruck.

Gerade so Basic-Sachen wie "CRUD mit Adressdaten" u.ä. sind recht häufige Beispiel-Szenarien in der Doku der diversen ORMs, egal ob nun JDO oder sonstwas.


----------



## SamHotte (19. Jul 2006)

foobar hat gesagt.:
			
		

> Das hätte ich von einem Wirtschaftsinformatiker auch nicht erwartet.



Nanana, diese Pauschalisierung ist aber waghalsig ... :noe:


----------



## marco-142 (20. Jul 2006)

Hallo und vielen Dank,

dass ihr alle so schnell geantwortet habt. Zuerst wollte ich mal Fragen, ob jemand von euch eine Empfehlung hat bezüglich eines Tutorials zu JDO.

Ich erläutere mal, was ich bisher gemacht habe.

1. ich habe eine MySQL Datenbank erstellt: DROP TABLE IF EXISTS `test`.`Adressen`;

CREATE TABLE `test`.`Adressen` (
  `ID` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `Anrede` VARCHAR(10),
  `Vorname` VARCHAR(45),
  `Nachname` VARCHAR(45),
  `Strasse` VARCHAR(45),
  `Hausnummer` VARCHAR(5),
  `Postleitzahl` INT,
  `Ort` VARCHAR(45),
  `Telefonnummer` VARCHAR(45),
  `eMail` VARCHAR(45),
  `Homepage` VARCHAR(45),
  PRIMARY KEY (`ID`)
)

und mit Datensätzen gefüllt.

USE test;

INSERT INTO test.Adressen (Anrede, Vorname, Nachname, Strasse, Hausnummer, Postleitzahl, Ort, Telefonnummer, eMail, Homepage) 
VALUES
('Herr', 'Fix', 'Schmitz', 'Hangweg', '47ba', '63947', 'Burgstadt', '09371/65440', 'fix@schmitz-ffm.de', 'http://www.schmitz-ffm.de'),
('Herr', 'Marco', 'Mueller', 'Lenbachstrasse', '9', '65428', 'Ruesselsheim', '06142/50246', 'marco-142@web.de', 'http://www.fh-frankfurt.de'),
('Herr', 'Foxy', 'Meier', 'Ulmengasse', '11', '65428', 'Ruesselsheim', '06142/723489', 'max.meier@web.de', 'http://www.max-meier.de'),

... usw

2. ich habe eine Klasse Adressen erstellt:


```
public class Adressen {
	
	private String sAnrede;
	private String sVorname;
	private String sNachname;
	private String sStrasse;
	private String sHausnummer;
	private int iPostleitzahl;
	private String sOrt;
	private String sTelefonnummer;
	private String sEMail;
	private String sHomepage;
	

	Adressen(String sAnrede, String sVorname, String sNachname,
		String sStrasse,String sHausnummer, int iPostleitzahl,
		String sOrt, String sTelefonnummer, String sEMail,
		String sHomepage){
			this.sAnrede = sAnrede;
			this.sVorname = sVorname;
			this.sNachname = sNachname;
			this.sStrasse = sStrasse;
			this.sHausnummer = sHausnummer;
			this.iPostleitzahl = iPostleitzahl;
			this.sOrt = sOrt;
			this.sTelefonnummer = sTelefonnummer;
			this.sEMail = sEMail;
			this.sHomepage = sHomepage;
	}
	
	public void setAnrede (String sAnredeA){
		sAnrede = sAnredeA;
	}

	public String getAnrede (){
		return sAnrede;
	}
	
	
	public void setVorname (String sVornameA){
		sVorname = sVornameA;
	}
	
	public String getVorname (){
		return sVorname;
	}
	
	
	public void setNachname (String sNachnameA){
		sNachname = sNachnameA;
	}
	
	public String getNachname (){
		return sNachname;
	}
	
	
	public void setStrasse (String sStrasseA){
		sStrasse = sStrasseA;
	}
	
	public String getStrasse (){
		return sStrasse;
	}
	
	
	public void setHausnummer (String sHausnummerA){
		sHausnummer = sHausnummerA;
	}
	
	public String getHausnummer (){
		return sHausnummer;
	}
	
	
	public void setPostleitzahl (int iPostleitzahlA){
		iPostleitzahl = iPostleitzahlA;
	}
	
	public int getPostleitzahl (){
		return iPostleitzahl;
	}
	
	
	public void setOrt (String sOrtA){
		sOrt = sOrtA;
	}
	
	public String getOrt (){
		return sOrt;
	}
	
	
	public void setTelefonnummer (String sTelefonnummerA){
		sTelefonnummer = sTelefonnummerA;
	}
	
	public String getTelefonnummer (){
		return sTelefonnummer;
	}
	
	
	public void setEMail (String sEMailA){
		sEMail = sEMailA;
	}
	
	public String getEMail (){
		return sEMail;
	}
	
	
	public void setHomepage (String sHomepageA){
		sHomepage = sHomepageA;
	}
	
	public String getHomepage (){
		return sHomepage;
	}
}
```

und eine Klasse Adresse_erzeugen:


```
public class Adresse_erzeugen {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	Adressen a1;
	
	a1 = new Adressen("Herr", "Heinz", "Erhard", "Sonnenallee",
		"777a", 77777, "Jever", "0800/999999",
		"HeinzErhard@HeinzErhard.de", "www.HeinzErhard.de");
	}
}
```

Nun bin ich also in der Lage ein Objekt vom Typ Adressen zu erzeugen.

Dieses Objekt möchte ich nun in meine Datenbank schreiben. Mein Problem ist, dass ich nicht weiß, wie ich dies machen soll. Ich kenne mich mit solchen Vorgängen nicht wirklich aus und finde darum auch keinen richtigen Einstieg. Vielleicht kann mir jemand mal erklären oder ein tutorial empfehlen, in dem von A-Z erklärt wird, wie ich eine Verbindung zu einer Datenbank herstelle bis zu dem Speichern eines Objektes mit JDO.

Vielen Dank

Marco


----------



## KSG9|sebastian (20. Jul 2006)

http://www.google.de/search?hl=de&q=jdo+tutorial&meta=


In den ersten 15 Ergebnissen sind schon 10 Beispiele und davon ca. 3 mit Adressdaten.


----------



## AlArenal (20. Jul 2006)

Ich arbeite selber nicht mit JDO, habe mir letztens aber noch diverse Persistenz-Mechnaismen und ORMs angeschaut, von daher möchte ich soviel sagen:

Allgemein
JDO ist ein ursprünglich von Sun entwickelter, mittlerweile an die APahce Group abgegebener Standard für einen Persistenz-Mechanismus, um Objekte aus Java in einer relationalen Datenbank abzulegen. 

Implementierungen
Es gibt diverse konkrete Implementierungen dieses Standards, wie z.B. JPOX, Castor,  Kodo, ... Für welche man sich entscheidet, ist am Anfang sicher nicht ganz einfach zu entscheiden. Am besten man schaut sich jeweils die Doku und Tutorials an und nimmt sich mal das vor, womit am schnellsten zurechtkommt.

Benutzung
Wie gesagt, JDO ist lediglich der Standard. Es ist kein Produkt oder sonstwas. Wenn man JDO benutzten möchte, muss man sich eine Implementierung schnappen und diese benutzen. Die bekannteresn Implementierungen haben eigentlich alle sehr gute Doku und Tutorials dabei, die man für deinen recht einfachen Use-Case auch simpel anpassen kann.

*Links:*

 JDO Central
 Online-Artikel:  Castor-Transport - Java-basiertes Object-Mapping für XML, RDBMS und LDAP 
 Artikel: Getting Started With Java Data Objects (JDO)
 JPOX
 Castor


----------



## AlArenal (20. Jul 2006)

KSG9|sebastian hat gesagt.:
			
		

> Klick mich weil ich alles weiß!
> 
> In den ersten 15 Ergebnissen sind schon 10 Beispiele und davon ca. 3 mit Adressdaten.



Schreib mich ohne Anführungszeichen, weil ich sonst nicht funktionieren tu


----------



## KSG9|sebastian (20. Jul 2006)

@AlArenal: Hab ich doch scon getan .


www.hibernate.org gibts auch noch


----------



## AlArenal (20. Jul 2006)

KSG9|sebastian hat gesagt.:
			
		

> www.hibernate.org gibts auch noch



Böses Foul!
Hibernate ist keine JDO Implementierung!


----------

