Tiny little hack to transfer objects conforming to JDBC's
ResultSet
interface
into objects conforming to W3C's
DOM Document
interface.
In essence the application transforms arbitrary query results generated by JDBC into XML documents and
matching XML Schema instances.
import de.jeckle.RS2DOM.RS2DOM;
RS2DOM.ResultSet2XSDDOM(resultSet)
RS2DOM.ResultSet2DOM(resultSet)
Note: Although, the example uses the DOM implementation shipped with SUN's JDK and connects to the database using MySQL's Connector/J JDBC-complaint driver the methods called to create the DOM trees operate solely on standardized interfaces. Hence, they are compatible to all DOM and JDBC compliant implementations.
import java.io.FileDescriptor;
import java.io.FileOutputStream;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import de.jeckle.RS2DOM.RS2DOM;
public class TestDriver {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
System.err.println("Driver class not found");
e.printStackTrace();
}
Connection con = null;
try {
con =
(Connection) DriverManager.getConnection(
"jdbc:mysql://databaseServer/database/",
"username",
"password");
} catch (SQLException e1) {
System.err.println("Error establishing database connection");
e1.printStackTrace();
}
Statement stmt = null;
try {
stmt = (Statement) con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM test;");
//transfer ResultSet into XML Schema stored as DOM
Document xsd = RS2DOM.ResultSet2XSDDOM(rs);
//transfer ResultSet into DOM
Document d = RS2DOM.ResultSet2DOM(rs);
//that's all ;-)
try {
Transformer myTransformer =
(TransformerFactory.newInstance()).newTransformer();
System.out.println(
"XML Schema instance describing the document");
myTransformer.transform(
new DOMSource(xsd),
new StreamResult(new FileOutputStream(FileDescriptor.out)));
System.out.println(
"\n\nXML document containing the result set");
myTransformer.transform(
new DOMSource(d),
new StreamResult(new FileOutputStream(FileDescriptor.out)));
} catch (Exception e) {
e.printStackTrace();
}
} catch (SQLException e2) {
System.err.println("Error creating SQL-Statement");
e2.printStackTrace();
}
}
}
The implementation is released unter the Lesser GNU Public License.
Service provided by Mario Jeckle
Generated: 2004-06-11T07:11:37+01:00
Feedback SiteMap
This page's original location: http://www.jeckle.de/freeStuff/JDBC2XML/index.html
RDF description for this page