您可以使用LOCAL选项运行LOAD DATA INFILE,然后使用com.mysql.jdbc.Statement #setLocalInfileInputStream从运行MySQL JDBC客户端的位置加载CSV文件.例如:
// conn is an existing java.sql.Connection to a remote server
try (Statement st = conn.createStatement()) {
String localCsvFileSpec = "C:/Users/Jamie/Desktop/foo.csv"; // on this machine
((com.mysql.jdbc.Statement) st).setLocalInfileInputStream(
new FileInputStream(localCsvFileSpec));
st.execute(
"LOAD DATA LOCAL INFILE '(placeholder)' " +
"INTO TABLE table01 " +
"COLUMNS TERMINATED BY ',' " +
"(id, txt) " +
"");
}
有关更多信息,请参见this post.
不幸的是,从this answer on Stack Overflow开始,您似乎无法使用SELECT INTO OUTFILE将文件导出到数据库服务器以外的任何位置.