2015-03-02 44 views
0

這是我的代碼:的java在PreparedStatement.executeUpdate()只插入最後一排

String insertQuery = "INSERT INTO Links(PageId, LinkId) values(?, ?)"; 
PreparedStatement preparedStatement = con.prepareStatement(insertQuery); 
Vector<String> links = page.getLinks();  
for (String string : links) {  
    Concept c = dbpedia.findConceptbyTitle(string);      
    if (c != null) { 
     preparedStatement.setInt(1, Integer.parseInt(page.getID())); 
     preparedStatement.setInt(2, c.id); 
    }  
} 
preparedStatement.executeUpdate(); 

奇怪的是,當我的executeUpdate後設置一個斷點,只有最後一個行插入SQL表中!

+0

您需要在每次要插入循環時創建preparedStatement。 – SMA 2015-03-02 17:20:45

回答

2

添加preparedStatement.addBatch();在你離開你的循環之前。

並替換preparedStatement.executeUpdate();用preparedStatement.executeBatch();.

+0

謝謝!有效! – Andi 2015-03-02 18:24:54