2014-10-20 54 views
0

我需要使用Java在數據庫上插入信息。這是關於信息檢索,我收集了1400個文件,每個文件包含:ID,標題,作者,區域,摘要。我已經將集合組織成5個獨立的字符串數組,消除了不必要的字符和多個空格。我能做些什麼來將這些數據存儲到我的集合數據庫中的一個名爲Documents的表中?我正在考慮類似...字符串數組使用Java的數據庫?

for(int i=0; i<=1400; i++){ 
    user.execute("INSERT INTO Documents (idDoc, title, author, area,abstract)") 
    VALUES("+ID[i]+","+Title[i]+","+Author[i]+","+Area[i]+","+Abstract[i]"); 
} 

這是正確的語法嗎?有沒有更簡單的方法來做到這一點?任何幫助將非常感激。

PS:我這個循環之前添加此:

String url = "jdbc:mysql//localhost:3306/database"; 
Class.forName("com.mysql.jdbc.Driver").newInstance(); // register driver. 
Connection con = DriverManager.getConnection(url, "root", "root"); 
Statement user = con.createStatement(); 

回答

1

使用JDBC的PreparedStatement批更新。看看下面的網站。 http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html http://docs.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html

dbConnection.setAutoCommit(false); 
String insertTableSQL = "INSERT INTO Documents (idDoc, title, author, area,abstract) VALUES " 
     "(?,?,?,?,?)";    
PreparedStatement = dbConnection.prepareStatement(insertTableSQL); 

for(int i=0; i<=ID.length; i++){ 
    preparedStatement.setInt(1, ID[i]); 
    preparedStatement.setString(2, Title[i]); 
    preparedStatement.setString(3, Author[i]); 
    preparedStatement.setString(4, Area[i]); 
    preparedStatement.setString(5, Abstract[i]); 
    preparedStatement.addBatch(); 
} 

preparedStatement.executeBatch(); 

爲了安全起見,我建議你創建一個文檔類,並插入到數據庫之前持有所有這些文件記錄到一個列表。