以前用C开发,unix平台
现在想转java
关于数据备份时。将数据库中的数据读出后,写成xml文件,放在一个目录下面,恢复时将xml文件读出,解析,插入数据库中。
我是个菜,在C下,用以前公司里的一个底层函数,想问的问题是:
java有没有这个底层函数,将数据写成xml文件,解析xml文件。对xml不太了解,请高手指教。
现在想转java
关于数据备份时。将数据库中的数据读出后,写成xml文件,放在一个目录下面,恢复时将xml文件读出,解析,插入数据库中。
我是个菜,在C下,用以前公司里的一个底层函数,想问的问题是:
java有没有这个底层函数,将数据写成xml文件,解析xml文件。对xml不太了解,请高手指教。
Convert a ResultSet to XML (2007-01-15 22:58:19)
package jdbc.test1;
import java.sql.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.dom.*;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class testxml1 {
public static void main(String[] args)
{
System.out.println("test testxml1\n");
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){
}
try{
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder =factory.newDocumentBuilder();
Document doc = builder.newDocument();
Element results = doc.createElement("Results");
doc.appendChild(results);
Connection con = DriverManager.getConnection("jdbc:odbc:test");
Statement sql = con.createStatement();
ResultSet rs = sql.executeQuery("select * from Region");
ResultSetMetaData rsmd = rs.getMetaData();
int colCount = rsmd.getColumnCount();
while (rs.next()) {
Element row = doc.createElement("Row");
results.appendChild(row);
for (int ii = 1; ii <= colCount; ii++) {
String columnName = rsmd.getColumnName(ii);
Object value = rs.getObject(ii);
Element node = doc.createElement(columnName);
node.appendChild(doc.createTextNode(value.toString()));
row.appendChild(node);
}
}
System.out.println(getDocumentAsXml(doc));
}
catch(Exception e){
System.out.print("error:" + e.toString());
}
}
public static String getDocumentAsXml(Document doc)
throws TransformerConfigurationException, TransformerException {
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,"ISO-8859-1");
// we want to pretty format the XML output
// note : this is broken in jdk1.5 beta!
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
//
java.io.StringWriter sw = new java.io.StringWriter();
StreamResult sr = new StreamResult(sw);
transformer.transform(domSource, sr);
return sw.toString();
}
}