Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将XML数据存储到数据库中的最佳方法_Java_Mysql_Xml - Fatal编程技术网

Java 将XML数据存储到数据库中的最佳方法

Java 将XML数据存储到数据库中的最佳方法,java,mysql,xml,Java,Mysql,Xml,我有一个包含多个级别子项的XML文件。将数据存储到数据库中的最佳方式是什么?要为节点生成不同的表并使用关系保存数据,还是?如果我们有50个不同的节点,该怎么办 类似的XML <storage> <product description="Cardigan Sweater" product_image="cardigan.jpg"> <storage_item gender="Men's"> <item_number&g

我有一个包含多个级别子项的XML文件。将数据存储到数据库中的最佳方式是什么?要为节点生成不同的表并使用关系保存数据,还是?如果我们有50个不同的节点,该怎么办

类似的XML

<storage>
   <product description="Cardigan Sweater" product_image="cardigan.jpg">
      <storage_item gender="Men's">
         <item_number>QWZ5671</item_number>
         <price>39.95</price>
         <size description="Medium">
            <color image="red_cardigan.jpg">Red</color>
            <color image="burgundy_cardigan.jpg">Burgundy</color>
         </size>
         <size description="Large">
            <color image="red_cardigan.jpg">Red</color>
            <color image="burgundy_cardigan.jpg">Burgundy</color>
         </size>
      </storage_item>
      <storage_item gender="Women's">
         <item_number>RRX9856</item_number>
         <price>42.50</price>
         <size description="Small">
            <color image="red_cardigan.jpg">Red</color>
            <color image="navy_cardigan.jpg">Navy</color>
            <color image="burgundy_cardigan.jpg">Burgundy</color>
         </size>
         <size description="Medium">
            <color image="red_cardigan.jpg">Red</color>
            <color image="navy_cardigan.jpg">Navy</color>
            <color image="burgundy_cardigan.jpg">Burgundy</color>
            <color image="black_cardigan.jpg">Black</color>
         </size>
         <size description="Large">
            <color image="navy_cardigan.jpg">Navy</color>
            <color image="black_cardigan.jpg">Black</color>
         </size>
         <size description="Extra Large">
            <color image="burgundy_cardigan.jpg">Burgundy</color>
            <color image="black_cardigan.jpg">Black</color>
         </size>
      </storage_item>
   </product>
</storage>

QWZ5671
39.95
红色
暗红色的
红色
暗红色的
RRX9856
42.50
红色
海军
暗红色的
红色
海军
暗红色的
黑色
海军
黑色
暗红色的
黑色

您可以将此XML转换为JSON格式,并将其保存在NoSQL数据库(如MongoDB)中

更新:如果需要将其保存到SQL数据库中,我认为需要使用JAXB或XMLBeans将其转换为java对象,然后使用JDBC或JPA将其保存到DB中


额外的想法(Tristan):在第二种解决方案中,您还可以选择在SQL DB中实际需要精确数据的XML部分,以及将其存储在CLOB字段中的其他部分。

我知道,但我使用关系数据库(mySQL)抱歉,我只是在他的评论后添加了第二句话。我已经将其转换为java。但这是使用xml进行操作的最佳方式吗?看,我有50个嵌套节点,我不能创建50个表……我想这取决于如果你不需要数据的一致性,你可以将
xml
直接保存在一列中。您可以创建
产品
存储项目
表格,并将
大小
以xml格式保存在列中。具体取决于您想对其执行的操作。如果您只想存储它并按原样取回,请使用blob。如果您希望实际处理数据,例如,查找项目的平均价格,请将其分解并根据需要创建不同的表。