以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  怎么用java语言把xml文件写进sql server2000数据库里面啊~  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=54943)


--  作者:benqmichael
--  发布时间:11/6/2007 3:22:00 PM

--  怎么用java语言把xml文件写进sql server2000数据库里面啊~
比如说我有一个名为test.xml的xml文件放在E盘下面
如下:
<?xml version="1.0" encoding="GB2312" ?>
<Details>
 <CONTACT>
  <RESTAURANT_NAME>中华园</RESTAURANT_NAME>
  <Phone>3336767</Phone>
  <Street>王府井大街 25 号</Street>
  <City>北京</City>
  <Country>中国</Country>
  <ZIP>20056</ZIP>
  <Email>chinagrden@china.com</Email>
 </CONTACT>

 <CONTACT>
  <RESTAURANT_NAME>唐人街</RESTAURANT_NAME>
  <Phone>5557679</Phone>
  <Street>浦东新街 3625 号</Street>
  <City>上海</City>
  <Country>中国</Country>
  <ZIP>60098</ZIP>
  <Email>chinatown@china.net</Email>
 </CONTACT>
</Details>


数据库名为pubs 表名为test 上面列已建好分别为RESTAURANT_NAME,Phone,Street,City,Country,ZIP,Email
怎么用java语言把xml文件写进sql server2000数据库


我是用    这种方式写的
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
      DocumentBuilder builder=factory.newDocumentBuilder();
      Document doc=builder.newDocument();


谢谢大家了 帮帮我


--  作者:benqmichael
--  发布时间:11/8/2007 9:25:00 PM

--  
我已找到方法 特供大家参考

package testxml;

import java.lang.String;
import java.sql.*;
import org.w3c.dom.*;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.Connection;

public class TestXml {

    public static void main(String[] args) {
        try {
            //获取文档生成器工厂
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            //通过文档生成器工厂获得文档生成器
            DocumentBuilder db = dbf.newDocumentBuilder();
            //获得document对象
            Document doc = db.parse(args[0]);
            //获得元素列表
            NodeList nl = doc.getElementsByTagName("*");
            //获得第三个元素,因为第一个和第二个是没有数据的
            Element e2 = (Element) nl.item(2);
            //获得姓名
            String name = e2.getFirstChild().getNodeValue();
            //获得第四个元素
            Element e3 = (Element) nl.item(3);
            //获得年龄
            String age = e3.getFirstChild().getNodeValue();
            //获得第五个元素
            Element e4 = (Element) nl.item(4);
            //获得地址
            String address = e4.getFirstChild().getNodeValue();

            TestXml tx = new TestXml();
            tx.SqlConnection(name, age, address);

        } catch (Exception ex) {
            ex.printStackTrace();
        }

    }

    public static void SqlConnection(String name, String age, String address) {
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection con = DriverManager.getConnection(
                    "jdbc:odbc:driver={SQL Server};database=test;server=.",
                    "sa", "");
            Statement stmt = con.createStatement();
            stmt.executeUpdate("insert test(name,age,address)values('" + name +
                               "','" + age + "','" + address + "')");

        } catch (Exception es) {
            es.printStackTrace();
        }
    }
}


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
2,559.570ms