作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前已经有了将特定 .csv 文件(提供的目录)导入 mysql 的代码。
我正在尝试调整它并尝试使用 java 教程中演示的 create File() 方法,即。 File file = new File("d:\\myproject\\java\\Hello.java");
并修改代码如下:
我的代码如图:
import java.sql.Connection;
import java.sql.Statement;
import java.io.*;
public class ImportCsv {
public static void main(String[] args) {
ImportCsv.readCsvUsingLoad();
}
public static void readCsvUsingLoad() {
try (Connection connection = DBConnection.getConnection()) {
File file = new File("C:/Users/User/Desktop/Test/upload2.csv");
String loadQuery = "LOAD DATA LOCAL INFILE '" + "file" + "' INTO TABLE txn_tbl FIELDS TERMINATED BY ','"
+ " LINES TERMINATED BY '\n' " + "IGNORE 1 LINES(txn_amount, card_number, terminal_id)";
System.out.println(loadQuery);
Statement stmt = connection.createStatement();
stmt.execute(loadQuery);
System.out.println("Data import success");
} catch (Exception e) {
e.printStackTrace();
}
}
}
但是,Intellij 不断抛出 FileNotFoundException。
我是不是误解了这里创建文件实例的用法?
最佳答案
因为您使用文件名作为字符串 "file"
而不是您必须删除两个引号,并且您不需要创建文件,您只需要 路径
(字符串):
String file = "C:/Users/User/Desktop/Test/upload2.csv";
String loadQuery = "LOAD DATA LOCAL INFILE '" + file + "' "
//---------------------------------------^^
+ "INTO TABLE txn_tbl FIELDS TERMINATED BY ',' "
+ "LINES TERMINATED BY '\n' "
+ "IGNORE 1 LINES(txn_amount, card_number, terminal_id)";
您可以像这样使用 getAbsolutePath
的另一种方法:
File file = new File("C:/Users/User/Desktop/Test/upload2.csv");
String path = file.getAbsolutePath();
String loadQuery = "LOAD DATA LOCAL INFILE '" + path + "' "
//---------------------------------------^^
+ "INTO TABLE txn_tbl FIELDS TERMINATED BY ',' "
+ "LINES TERMINATED BY '\n' "
+ "IGNORE 1 LINES(txn_amount, card_number, terminal_id)";
关于java - 与 Java : How to import an arbitrary . csv 文件中的文件实例函数混淆到 mysql 而不是特定文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46212115/
我是一名优秀的程序员,十分优秀!