在java中读取两个不同的arrayList值并将其添加到同一个数组Object中

时间:2017-06-15 07:40:17

标签: java arrays arraylist

我正在尝试从csv文件创建更新sql查询。

因此,为此我尝试读取两个不同的数组列表值,一个来自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值并保持在同一个数组中。

我提前为语法错误或任何其他错误道歉。

1 个答案:

答案 0 :(得分:0)

这可能会创建SQL注入的场景。使用绑定变量并循环列表。如果您确实认为有可能存在长列表,则可以尝试批量更新。