# Datenbank-Tabelle to XML



## Didi_R (2. Mrz 2010)

moin,

gibt es schon eine einfach lib mit der man eine Datenbanktabell nach XML packen kann?

Datenbank

Col1       Col2        Col3
1           Peter       Pan
2           Max         Sonstwas



XML

<row1>
 <col1>1</col1>
 <col2>Peter</col2>
 <col3>Pan</col3>
</row1>
<row2>
...


Gruß
didi


----------



## Noctarius (2. Mrz 2010)

Fertig kenn ich da jetzt grad nichts aber mit JPA und JAXB kannst du Pojos nach Datenbankschema aufbauen und mit beiden Sorten Annotations versehen. Dann Entity aus der DB per JPA laden und per JaxbContext wegschreiben


----------



## Didi_R (2. Mrz 2010)

hmm, dann habe ich pech gehabt und das wird in einer anderen Programmiersprache gemacht!
Danke dir!


----------



## guni (2. Mrz 2010)

was ist es denn für eine Datenbank?!
Zumindest von Oracle weiß ich, dass du deinen Select schon so aufbauen könntest, dass du das Ergebnis als XML-zurückbekommst.


----------



## Didi_R (2. Mrz 2010)

guni hat gesagt.:


> was ist es denn für eine Datenbank?!
> Zumindest von Oracle weiß ich, dass du deinen Select schon so aufbauen könntest, dass du das Ergebnis als XML-zurückbekommst.



IBM AS400 DB2

aber danke für die info falls ich es mal mit einer oracle db zu tun habe!
gruß
didi


----------



## guni (3. Mrz 2010)

bitte. 

nur interessenshalber: für welche Programmiersprache hast du dich denn entschieden?
warum schreibst du dir in java nicht einen XmlReader dem du in den Konstruktor ein ResultSet (oder einen query-String) übergibst?!

lg, guni


----------



## Noctarius (3. Mrz 2010)

Sowas in der Art meinte ich ja auch


----------



## Didi_R (3. Mrz 2010)

guni hat gesagt.:


> bitte.
> 
> nur interessenshalber: für welche Programmiersprache hast du dich denn entschieden?
> warum schreibst du dir in java nicht einen XmlReader dem du in den Konstruktor ein ResultSet (oder einen query-String) übergibst?!
> ...



Die Entscheidung liegt nicht bei mir. 
Da sind alle Programm hauptsächlich in RPG und deren üblichen Sprachen geschrieben. Java wäre dann nur vorteilhafter gewesen wenn ich so gut wie nix machen müsste ausser vielleicht eine lib anzusprechen der ich meine Datenbank-Tabelle übergebe und xml zurückbekommen hätte!
Aber da dem nicht so ist, bekomme ich nicht das Projekt!

Und wie aufwendig eure Ideen zu der RPG variante ist, kann ich nicht beurteilen!

gruß
didi


----------



## maki (3. Mrz 2010)

> gibt es schon eine einfach lib mit der man eine Datenbanktabell nach XML packen kann?


DBUnit


----------



## guni (3. Mrz 2010)

> Und wie aufwendig eure Ideen zu der RPG variante ist, kann ich nicht beurteilen!


hmm ... RPG sagt mir nichts, aber den Java-Aufwand würde ich auf ca. 10-15 Lines of Code schätzen:

```
// Document aufbauen
		Document d = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
		Element root = d.createElement("RESULT");
		
		// Datenbankverbindung herstellen
		Class.forName(this.driver);
		Connection conn = DriverManager.getConnection(this.connstr, this.db_user, this.db_pass);
		Statement s = conn.createStatement();
		ResultSet r = s.executeQuery(this.sqlquery);
		ResultSetMetaData rsmd = r.getMetaData();
		
		int columnCount = r.getMetaData().getColumnCount();
		while (r.next()) {
			Element row = d.createElement("ROW");
			for (int i=1; i<columnCount+1; i++) {
				row.setAttribute(rsmd.getColumnLabel(i), r.getString(i));
			}
			root.appendChild(row);
		}
```
... hab es jetzt nicht wirklich ausprobiert - aber so müsste es meiner Meinung nach gehen.

mfg, guni


----------



## Didi_R (3. Mrz 2010)

Super, hat sofort geklappt und verständlich ist der code auch noch!
Vielen Dank


----------



## guni (4. Mrz 2010)

cool ;-)


----------

