java中的数据表

时间:2017-01-21 14:17:02

标签: java mysql xml

我有以下xml数据,我需要把它放在mysql数据库中。我现在正在单独读取标签名称和值以将数据放入DB中。任何人都可以帮助我,如果像datatable这样的东西直接使用mydata.xml生成表并存储在数据库中。

\\ mydata.xml
<arbitrarytag xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="#local">
    <xs:schema id="local">
        <xs:element name="root">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="qty" type="xs:integer" />
                    <xs:element name="firstName" type="xs:string" />
                    <xs:element name="date" type="xs:dateTime" />
                </xs:sequence>
            </xs:complexType>
        </xs:element>
    </xs:schema>
    <root>
        <qty>25</qty>
        <firstName>John</firstName>
        <date>1972-08-30T00:00:00+05:30</date>
    </root>
</arbitrarytag>

在我解析xml并获取数据的代码下面。

DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document doc = docBuilder.parse("mydata.xml");
NodeList nList = doc.getElementsByTagName("*");
Node n = nList.item(0);
Element ele = (Element) nNode;
String tag = ele.getNodeName();
String val = ele.getChildNodes().item("qty").getTextContent();

有没有办法使用mydata.xml创建表并存储在数据库中

1 个答案:

答案 0 :(得分:0)

将XML文件导入MySQL表

如果您只想将XML数据导入MySQL数据库,可以使用LOAD XML。以下是完成此操作的示例:

  1. 创建XML文件并将其保存在文件系统的目录中,让我们说一下Linux系统上的/tmp目录。所以我创建了一个名为mydata.xml的文件,其中包含以下内容:

    <root>
        <qty>25</qty>
        <firstname>John</firstname>
        <some_date>1972-08-30T00:00:00+05:30</some_date>
    </root>
    
  2. 在数据库中创建一个表,将tab1称为:

    create table tab1 (qty int, firstname varchar(30), some_date datetime);
    
  3. 在MySQL控制台上执行以下语句:

    mysql> load xml local infile '/tmp/mydata.xml' into table tab1 rows identified by '<root>';
    
  4. 其中/tmp/mydata.xml是XML文件的路径(在我的情况下是Linux系统上的tmp目录)。

    如果按照我的描述做的话,结果就是结果:

      

    的MySQL&GT;从tab1中选择*;

         

    + ------ + ----------- + --------------------- +

         

    |数量|名字| some_date |

         

    + ------ + ----------- + --------------------- +

         

    | 25 |约翰| 1972-08-30 00:00:00 |

         

    + ------ + ----------- + --------------------- +

         

    套装中的1行(0,00秒)

    注意:导入时,时间戳中的偏移量才会被截断。如果这很重要,请查看MySQL文档如何正确执行。