xml数据存入数据库的解决办法

当我们要把xml格式的数据存到数据库中。通常的办法是解析xml文件,读出xml中的数据类型并根据它创建数据库表
和表之间的结构,读出xml中的数据,存入到数据库之中。
在读nodeType是要注意二个问题:
1.读某个节点数据类型可以对上一个节点的孩子,或直接使本节点的类型,只不过要严格注意定位正确,不要混淆。
例:link.getElementsByTagName("link").item(0).getFirstChild().getNodeType()
2.对于nodetype的值,如果一般可以得到数据,也可以是与Node类的静态属性值相配的。
如:Node.DOCUMENT_NODE
    Node.ELEMENT_NODE
    Node.CDATA_SECTION_NODE
    Node.TEXT_NODE

好像与0,1,2,3相对应,自己可以测试一下。

其实上面的方法并不是一件可取的方法,一种比较好的替代方法是:
1.使用xnlSchema来描述该xml文件。
2.对schema文件进行xml解析,获得实体及其类型,然后根据实体名和类型来创建表,根据实体之间的关系,设定表之间的关系。
3.用xmldom或sxap来解析xml文件,提取数据,存入数据库中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将解析后的XML数据存入达梦数据库,可以按照以下步骤进行: 1. 使用XML解析器(如Java中的DOM或SAX解析器)读取XML文件,并将其解析成程序可用的数据格式,例如Java中的Document对象。 2. 遍历解析后的数据,提取需要存入数据库数据,并将其转换为达梦数据库数据格式,例如Java中的PreparedStatement对象。 3. 使用JDBC连接到达梦数据库,并将转换后的数据插入到数据库中,例如Java中的executeUpdate()方法。 下面是一个Java示例代码,演示了如何将解析后的XML数据存入达梦数据库: ```java import java.sql.*; import javax.xml.parsers.*; import org.w3c.dom.*; public class XmlToDm { public static void main(String[] args) { try { // 解析XML文件 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse("data.xml"); // 连接到达梦数据库 Class.forName("dm.jdbc.driver.DmDriver"); Connection conn = DriverManager.getConnection("jdbc:dm://localhost:5236", "user", "password"); // 提取需要存入数据库数据 NodeList nodes = doc.getElementsByTagName("person"); for (int i = 0; i < nodes.getLength(); i++) { Element person = (Element) nodes.item(i); String name = person.getAttribute("name"); int age = Integer.parseInt(person.getAttribute("age")); // 将数据转换为达梦数据库数据格式 PreparedStatement stmt = conn.prepareStatement("INSERT INTO person (name, age) VALUES (?, ?)"); stmt.setString(1, name); stmt.setInt(2, age); // 插入数据到达梦数据库 int rows = stmt.executeUpdate(); System.out.println(rows + " row(s) inserted."); } // 关闭数据库连接 conn.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 在上面的示例代码中,我们首先使用Java内置的XML解析器解析了名为"data.xml"的XML文件,并遍历了其中的"person"元素,提取了"name"和"age"属性的值,并将其转换为达梦数据库数据格式。接着,我们使用JDBC连接到达梦数据库,并将转换后的数据插入到"person"表中。最后,我们关闭了数据库连接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值