O seguinte funcionará através do JDBC. Observe que para usar
LOAD DATA INFILE
você precisa de privilégios de superusuário. O que você não precisa para LOAD DATA LOCAL INFILE
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/foobar", "root", "password");
Statement stmt = con.createStatement();
String sql =
"load data infile 'c:/temp/some_data.txt' \n" +
" replace \n" +
" into table prd \n" +
" columns terminated by '\\t' \n" +
" ignore 1 lines";
stmt.execute(sql);
Se você usar
LOAD DATA INFILE
a localização do arquivo é baseada no sistema de arquivos do servidor! Se você usa um arquivo local, obviamente ele é baseado no sistema de arquivos do cliente.