2013-04-30 45 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