简体   繁体   English

如何将多个xml数据存储到java数据库中

[英]how to store multiple xml data into java database

I am storing xml in a java database. 我将xml存储在java数据库中。 In java xml is retrieving successfully, but in my sql I can't store it somehow. 在java中,xml检索成功,但是在我的sql中,我无法以某种方式存储它。 Data is not been inserted into mysql. 数据未插入mysql。

   public static void main (String argv []) throws SQLException{
      try {
        DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
        Document doc = docBuilder.parse (new File("C:/Users/GbsIndia1/Desktop/appsettings.xml"));

        // normalize text representation
        doc.getDocumentElement ().normalize ();
        System.out.println ("Root element of the doc is " + 
             doc.getDocumentElement().getNodeName());

        NodeList listOfPersons = doc.getElementsByTagName("Name");
        int totalPersons = listOfPersons.getLength();
        System.out.println("Total no of Device : " + totalPersons);

        for(int s=0; s<listOfPersons.getLength() ; s++){
            Node firstPersonNode = listOfPersons.item(s);
            if(firstPersonNode.getNodeType() == Node.ELEMENT_NODE){

                Element firstPersonElement = (Element)firstPersonNode;

                //-------
                NodeList firstNameList = doc.getElementsByTagName("Name");

                Element firstNameElement = (Element)firstNameList.item(s);

                NodeList textFNList = firstNameElement.getChildNodes();
                System.out.println("Hardware Name is " + 
                      ((Node)textFNList.item(0)).getNodeValue().trim());
            }
        }

       Class.forName("com.mysql.jdbc.Driver");

    }catch (SAXParseException err) {
    System.out.println ("** Parsing error" + ", line " 
         + err.getLineNumber () + ", uri " + err.getSystemId ());
    System.out.println(" " + err.getMessage ());

    }catch (SAXException e) {
      Exception x = e.getException ();
      ((x == null) ? e : x).printStackTrace ();

    }catch (Throwable t) {
      t.printStackTrace ();
    }
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test1" ,"root","");

Statement st=con.createStatement();

int i=st.executeUpdate("insert into test1(name) values('"+Name+"')");

In name xml tag there are multiple value like 名称xml标记中有多个值,例如

<Category>
<Name>ABC</Name>
<Name>DEF</Name>
<Name>GHI</Name>
</Category>

I want to store this data in mysql. 我想将此数据存储在mysql中。 So what's problem with my code? 那么我的代码有什么问题?

You can add required values in an ArrayList and iterate through it to execute update: 您可以在ArrayList添加所需的值并对其进行迭代以执行更新:

    ArrayList<String> list = new ArrayList<String>();
    list.add("ABC");
    list.add("DEF");
    list.add("GHI");

    boolean flag = false;
    for (int i = 0; i < list.size() && !flag; i++) {
        checkReturnValue = st.executeUpdate("insert into test1(name) values('"+ value+"')");
        if(checkReturnValue < 1)
            flag = true;
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM