2013-04-30 46 views
0

我需要在Eclipse中使用批量更新來更新表。查詢如下:在Eclipse中使用文件進行批量更新

BULK INSERT test_db.temp_accounts FROM 'test_file.txt' WITH (FIELDTERMINATOR = ' ', ROWTERMINATOR = '\n') 

但問題是,當我使用這個在Eclipse中使用JDBC連接,我得到的是一個語法錯誤連接到數據庫之後。

代碼片段如下:

Connection c = DriverManager.getConnection(CONNECTION,p); 
PreparedStatement stmt = c.prepareStatement("BULK INSERT test_db.temp_accounts FROM 'test_file.txt' WITH (FIELDTERMINATOR = ' ', ROWTERMINATOR = '\n')"); 
try 
{ 

}catch (Exception e) { 
    e.printStackTrace(); 
}finally { 
    stmt.close(); 
    c.close(); 
} 

文件「test_file.txt」是在同一個目錄中的Java類文件。有人可以在這裏指出正確的語法,謝謝。

回答

0

您是否嘗試使用該文件的絕對路徑,例如如果你使用的是Linux機器,它可能是這樣的/home/user/workspace/project_name/src/java/test_file.txt

您可以通過右鍵單擊該文件並選擇「屬性」選項,然後顯示該文件的絕對路徑,從而在Eclipse中找到任何文件的真實路徑名。

另外,你有沒有嘗試將文件名改爲test_file.sql而不是以.txt結尾。

+0

錯誤日誌說:「您的SQL語法有錯誤;請查看與您的MySQL服務器版本相對應的手冊,以便在'BULK INSERT到test_db.temp_accounts FROM'test_file.txt'WITH(我在使用服務器版本SQL 5.1.69。絕對路徑也不行。 – pkumar 2013-04-30 07:42:31

+0

您是否嘗試使用PreparedStatement#addBatch()和PreparedStatement#executeBatch(),如以下線程所示:http: //stackoverflow.com/questions/4355046/java-insert-multiple-rows-into-mysql-with-preparedstatement – blackpanther 2013-04-30 08:21:42