2017-06-15 80 views
2

我想從csv文件創建更新sql查詢。在Java中讀取兩個不同的arrayList值並將其添加到同一個數組對象

因此,爲此,我試圖讀取兩個不同的數組列表值,一個來自CSV文件,另一個來自數據庫。我想更新我的圖書數據庫,但有些字段應該保持原樣。

我寫下面的一段代碼來做到這一點,我可以打印查詢,但我覺得我的代碼效率不高。我可以用更有效的方式來完成此工作,而不用閱讀索引。

public List<Book> generateSqlQuery(List<Book> booksFromCSV) throws Exception{ 

    String update_query = "UPDATE Books SET book_name={0}, author_name={1}"; 

    String updateQuery = null; 
    Object [] book = null; 

    MessageFormat messageFormat = new MessageFormat(update_query); 

    List<Book> booksFromDB = BookDao.getBooks(); 


    for(int i=0; i<booksFromCSV.size()-1; i++){ 

     book = new Object[] { booksFromDB.get(i).getBookName(), 
       booksFromCSV.get(i).getAuthorName()}; 


     updateQuery = messageFormat.format(book); 
     System.out.println(updateQuery); 
    } 
    return booksFromCSV; 
} 

請給我一些建議或不同的方法,如何讀取兩個不同的arraylist值並保持在同一個數組中。

對於語法錯誤或任何其他錯誤,我提前致歉。

+0

如果兩個數組列表都包含相同類型的對象,則使用'addAll'並將列表中的所有項目添加到其他列表中。然後,您可以執行將該列表轉換爲任何類型的任何數組的過程。 – SudoRahul

回答

0

這可能會創建SQL注入的情況。使用綁定變量並對列表進行循環。如果您確信有長列表的機會,您可以嘗試批量更新。

相關問題