Hallo,
kann mir jemand erklären, wie ich aus einem ResultSet gewonnene Daten in eine XML Datei abspeichern kann? Momentan werden sie leider nur auf dem Bildschirm ausgegeben, hier mein code
würde mich echt freuen, wenn mir jemand helfen kann.
Danke schonmal im vorraus
LG Emwykey
kann mir jemand erklären, wie ich aus einem ResultSet gewonnene Daten in eine XML Datei abspeichern kann? Momentan werden sie leider nur auf dem Bildschirm ausgegeben, hier mein code
Java:
package org.firebirdsql.jdbc;
import java.io.BufferedInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.StringWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.Properties;
import javax.sql.rowset.RowSetProvider;
import javax.sql.rowset.WebRowSet;
import javax.sql.rowset.spi.XmlWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class SQLDBAbfrage {
public static void main(String args[]) throws Exception {
Properties serverconnection = new Properties();
try {
serverconnection.load(new FileInputStream("config.properties"));
} catch (IOException e) {
e.printStackTrace();
}
String treiber = serverconnection.getProperty("Driver");
String datenbank = serverconnection.getProperty("Database");
String username = serverconnection.getProperty("Username");
String password = serverconnection.getProperty("Password");
String name = serverconnection.getProperty("Databasename");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.newDocument();
Element results = doc.createElement("Results");
doc.appendChild(results);
Class.forName(treiber);
Connection con = DriverManager.getConnection(datenbank,
username, password);
System.out.println("Enter SQL Code:");
Statement stmt = con.createStatement();
String sqlabfrage = new java.util.Scanner(System.in).nextLine();
ResultSet rs = con.createStatement().executeQuery(sqlabfrage);
ResultSetMetaData rsmd = rs.getMetaData();
int colCount = rsmd.getColumnCount();
while (rs.next()) {
Element row = doc.createElement("Row");
results.appendChild(row);
for (int i = 1; i <= colCount; i++) {
String columnName = rsmd.getColumnName(i);
Object value = rs.getObject(i);
Element node = doc.createElement(columnName);
node.appendChild(doc.createTextNode(value.toString()));
row.appendChild(node);
}
}
DOMSource domSource = new DOMSource(doc);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
transformer.setOutputProperty(OutputKeys.METHOD, "xml");
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
StringWriter sw = new StringWriter();
StreamResult sr = new StreamResult(sw);
transformer.transform(domSource, sr);
System.out.println(sw.toString());
con.close();
rs.close();
}
}
würde mich echt freuen, wenn mir jemand helfen kann.
Danke schonmal im vorraus
LG Emwykey