Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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的字符串_Java_String_List - Fatal编程技术网

用于列出Java的字符串

用于列出Java的字符串,java,string,list,Java,String,List,我正在使用JavaJAXB进行XML解组,并将其转换为字符串,并调用将字符串存储在sql表中的函数。 现在我想将所有字符串存储在一个列表中,并将它们插入一个sql表中。根据列表的长度,我将进行批量插入,我不想调用表插入函数 每次。我需要相应修改代码的帮助 XMLInputFactory xif = XMLInputFactory.newFactory(); Reader reader = new StringReader(response.toString()); XML

我正在使用JavaJAXB进行XML解组,并将其转换为字符串,并调用将字符串存储在sql表中的函数。 现在我想将所有字符串存储在一个列表中,并将它们插入一个sql表中。根据列表的长度,我将进行批量插入,我不想调用表插入函数 每次。我需要相应修改代码的帮助

    XMLInputFactory xif = XMLInputFactory.newFactory();
    Reader reader = new StringReader(response.toString());
    XMLStreamReader xsr = xif.createXMLStreamReader(reader);
     while(xsr.hasNext()) {
        if(xsr.isStartElement() && xsr.getLocalName().equals("customer")) {
          JAXBContext jc = JAXBContext.newInstance(Customer.class);
          Unmarshaller unmarshaller = jc.createUnmarshaller();
          Customer jb = unmarshaller.unmarshal(xsr,Customer.class).getValue();
         String  customer_name=jb.getNAME();
         String customer_id=jb.getCUSTOMERID();
         String entity_id=jb.getENTITY();
         System.out.println("Customer Name" +customer_name);
         System.out.println("Customer ID" +customer_id);
         System.out.println("Entity ID" +entity_id);
         String insertStatement = "TABLEINSERT (customer_id, customer_name, entity_id)"; 
             insertStatements.add(insertStatement);
         }

          xsr.next();

     }

      if(insertStatements.size() > 10){
          TABLEINSERT (customer_id, customer_name, entity_id); 
        } else {
          System.out.println("Nothing");
        }


private static void TABLEINSERT (String CustomerID,String CustomerName, String EntityID)
{
  try
  {
    System.out.println("Inserting....");
    PreparedStatement statement = con.prepareStatement("INSERT INTO intacct_customer (customer_id,customer_name,entity_id) VALUES ( ?, ?,?)");
    statement.setString(1, CustomerID);
    statement.setString(2, CustomerName);
    statement.setString(3, EntityID);
    statement.execute();
  }
  catch (Exception e)
  {
    System.out.println(e.getMessage());
    System.exit(0);
  }
    }

您可以创建insert语句并将其存储在列表中。最后,根据列表的大小,您可以选择在循环中执行插入或批量插入

XMLInputFactory xif = XMLInputFactory.newFactory();
Reader reader = new StringReader(response.toString());
XMLStreamReader xsr = xif.createXMLStreamReader(reader);
List<String> insertStatements = new ArrayList<>();
 while(xsr.hasNext()) {
    if(xsr.isStartElement() && xsr.getLocalName().equals("customer")) {
      JAXBContext jc = JAXBContext.newInstance(Customer.class);
      Unmarshaller unmarshaller = jc.createUnmarshaller();
      Customer jb = unmarshaller.unmarshal(xsr,Customer.class).getValue();
     String  customer_name=jb.getNAME();
     String customer_id=jb.getCUSTOMERID();
     String entity_id=jb.getENTITY();
     System.out.println("Customer Name" +customer_name);
     System.out.println("Customer ID" +customer_id);
     System.out.println("Entity ID" +entity_id);
     String insertStatement = INSERTTABLE(customer_id, customer_name, entity_id); -> I dont want to call them everytime. I need to store them into strings and i need to bulk based on the length of the list. 
     insertStatements.add(insertStatement);

    }

     xsr.next();

}

if(insertStatements.size > 10){
  // perform bulk insert
} else {
  // usual insert
}

我更新了我的代码。你能告诉我这是否行得通吗。我是编程新手,因此发现这些东西令人困惑。如果需要对我进行任何更改,请建议我。我看不到名为IntacctCustomer的方法。此外,您正在创建的insert语句不正确。如果你解决了这些问题,它应该会起作用。你不是在编译和运行它吗?我只是更正了名称。那是个打字错误。当我编译这个程序时,我遇到了以下问题。customer\u id不能解析为变量customer\u name不能解析为变量entity\u id不能解析为变量这是因为这些变量在循环内部,在循环外部使用。我建议您准备好,将值传递给@wilquOf在问题评论中发布的方法和链接