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

          通過讀取xml文件動態建表

          Posted on 2006-09-16 21:23 誰伴我闖蕩 閱讀(1380) 評論(1)  編輯  收藏

          <?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描述在數據庫中創建一張表

          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文件動態建表 [未登錄]  回復  更多評論   

          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>

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


          網站導航:
           
          有事在這里給我留言噢!
          主站蜘蛛池模板: 黄浦区| 许昌市| 什邡市| 肇东市| 仁怀市| 云和县| 米易县| 昌黎县| 淮南市| 桃源县| 临沧市| 峨边| 泰和县| 铅山县| 汝城县| 重庆市| 叙永县| 潍坊市| 依兰县| 新宾| 南雄市| 龙口市| 博乐市| 江孜县| 开封市| 玛曲县| 松原市| 南郑县| 民县| 六盘水市| 许昌县| 旬邑县| 睢宁县| 神农架林区| 集贤县| 博爱县| 桐柏县| 遂溪县| 延津县| 仙游县| 公安县|