Java 将XML数据存储到数据库中的最佳方法
我有一个包含多个级别子项的XML文件。将数据存储到数据库中的最佳方式是什么?要为节点生成不同的表并使用关系保存数据,还是?如果我们有50个不同的节点,该怎么办 类似的XMLJava 将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
<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。如果您希望实际处理数据,例如,查找项目的平均价格,请将其分解并根据需要创建不同的表。