我正在尝试从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值并保持在同一个数组中。
我提前为语法错误或任何其他错误道歉。
答案 0 :(得分:0)
这可能会创建SQL注入的场景。使用绑定变量并循环列表。如果您确实认为有可能存在长列表,则可以尝试批量更新。