Ada
female
21
13300008888
Ada@gmail.com
将上面的xml描述在数据库中创建一张表
import java.io.*;
import java.sql.*;
import java.util.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
public class XmlToSql
{
public static void getNode(NodeList nl,StringBuffer sql)
{
for(int i=0;i
{
Node node = nl.item(i);
if(node.getNodeType() == Node.ELEMENT_NODE)
{
if(node.hasAttributes())
{
sql.append(node.getNodeName()+" ");
NamedNodeMap attr = node.getAttributes();
sql.append(attr.getNamedItem("Type").getNodeValue());
if(attr.getNamedItem("Length")!=null)
{
sql.append("("+attr.getNamedItem("Length").getNodeValue()+")");
}
sql.append(",");
if(attr.getNamedItem("Index")!=null && attr.getNamedItem("Index").getNodeValue().equals("True"))
{
sql.append("index index_"+node.getNodeName()+"("+node.getNodeName()+"),");
}
}
else
{
getNode(node.getChildNodes(),sql);
}
}
}
}
public static void main(String[] args)
{
try
{
DocumentBuilderFactory fac = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = fac.newDocumentBuilder();
Document document = builder.parse(new File("Data.xml"));
Node node = document.getFirstChild();
StringBuffer sql = new StringBuffer("create table temp(id int(11) NOT NULL auto_increment,");
getNode(node.getChildNodes(),sql);
sql.append("PRIMARY KEY (id))");
Class.forName("com.mysql.jdbc.Driver");
String url ="jdbc:mysql://localhost/test";
Connection conn= DriverManager.getConnection(url,"root","root");
Statement stmt = conn.createStatement();
stmt.execute(sql.toString());
}
catch(Exception e){
e.printStackTrace();
}
}
}