2014-10-20 52 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(); 

为了安全起见,我建议你创建一个文档类,并插入到数据库之前持有所有这些文件记录到一个列表。