1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
import java.io.File;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
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 DBSyncTools {
private Connection conn;
private Document doc;
public DBSyncTools(String driverName, String serverName,
String dataBaseName, String userName, String passWord)
throws ClassNotFoundException, SQLException,
ParserConfigurationException {
conn = ConnectionFactoryImpl.createConnection(serverName, dataBaseName,
userName, passWord, driverName);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
doc = builder.newDocument();
}
public Document save() throws SQLException, ParserConfigurationException {
try {
Statement stmt;
ResultSet rs;
ResultSetMetaData rsmd;
int colCount = 0;
DatabaseMetaData dbmd = conn.getMetaData();
String[] types = { "TABLE" };
ResultSet resultSet = dbmd.getTables(null, null, "%", types);
Element db = doc.createElement("DB");
doc.appendChild(db);
while (resultSet.next()) {
String tableName = resultSet.getString(3);
System.out.println(tableName);
// Table
Element tab = doc.createElement("Table");
tab.setAttribute("name", tableName);
db.appendChild(tab);
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from " + tableName);
rsmd = rs.getMetaData();
colCount = rsmd.getColumnCount();
int countRows = 0;
while (rs.next()) {
Element row = doc.createElement("Row");
tab.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);
System.out.println(columnName);
}
countRows++;
System.out.println("Ligne: "+countRows);
}
System.out.println("Somme des lignes: "+countRows);
rs.close();
stmt.close();
}
resultSet.close();
// writeXmlFile(doc,"data.xml");
} catch (SQLException e) {
}
System.out.println(doc);
return doc;
}
/*
* private void writeXmlFile(Document doc, String filename) { try { Source
* source = new DOMSource(doc); File file = new File(filename); Result
* result = new StreamResult(file); Transformer xformer =
* TransformerFactory.newInstance() .newTransformer();
* xformer.transform(source, result); } catch
* (TransformerConfigurationException e) { } catch (TransformerException e)
* { } }
*/
public static void main(String args[]) {
try {
DBSyncTools myDB = new DBSyncTools("MySql", "localhost", "prorion",
"root", "root");
myDB.save();
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
} catch (SQLException e) {
System.out.println(e.getMessage());
} catch (ParserConfigurationException e) {
System.out.println(e.getMessage());
}
}
} |
Partager