posts - 14, comments - 22, trackbacks - 0, articles - 4
            BlogJava :: 首頁 ::  :: 聯(lián)系 :: 聚合  :: 管理

          <?xml version="1.0" encoding="utf-8"?>
          <Stoke>
          ?<Name ID="1" Type="VarChar" Length="10" Index="True">Ada</Name>
          ?<Sex ID="2" Type="VarChar" Length="2">female</Sex>
          ?<Age ID="3" Type="Integer">21</Age>
          ?<Comm>
          ??<Mobile ID="4" Type="VarChar" Length="15">13300008888</Mobile>
          ??<Email ID="5" Type="VarChar" Length="30">Ada@gmail.com</Email>
          ?</Comm>
          </Stoke>

          將上面的xml描述在數(shù)據(jù)庫中創(chuàng)建一張表

          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<nl.getLength();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();
          ??}
          ?}?
          }


          評論

          # re: 通過讀取xml文件動態(tài)建表 [未登錄]  回復(fù)  更多評論   

          2015-04-24 13:27 by a
          <?xml version="1.0" encoding="utf-8"?>
          <Stoke>
          <Name ID="1" Type="VarChar" Length="10" Index="True">Ada</Name>
          <Sex ID="2" Type="VarChar" Length="2">female</Sex>
          <Age ID="3" Type="Integer">21</Age>
          <Comm>
          <Mobile ID="4" Type="VarChar" Length="15">13300008888</Mobile>
          <Email ID="5" Type="VarChar" Length="30">Ada@gmail.com</Email>
          </Comm>
          </Stoke>

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          有事在這里給我留言噢!
          主站蜘蛛池模板: 若尔盖县| 平顶山市| 铅山县| 淮安市| 阳高县| 兰考县| 盈江县| 晋城| 南昌市| 南郑县| 贡觉县| 井陉县| 香河县| 门头沟区| 运城市| 平遥县| 措勤县| 阿合奇县| 新乐市| 大埔县| 怀来县| 石阡县| 白山市| 波密县| 新巴尔虎左旗| 五莲县| 横山县| 西乌珠穆沁旗| 措勤县| 宁城县| 寿宁县| 澄城县| 时尚| 富裕县| 淅川县| 开封县| 古丈县| 孝昌县| 东安县| 绩溪县| 宜兴市|