[英]Import CSV data to mysql table within Java program
我有这种方法可以从 CSV 文件导入数据。 但该方法仅添加 PID。 有什么建议可以解决这个问题吗??
public void importData(){
try{
Import path = new Import();
String filename = path.getFileName();
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test");
st = con.createStatement(rs.TYPE_SCROLL_SENSITIVE, rs.CONCUR_UPDATABLE);
String query = "LOAD DATA LOCAL INFILE '" + filename + "' INTO TABLE Pacient (PID, Nume,Prenume, Varsta, CNP, Adresa);";
st.execute(query);
}
catch (SQLException | HeadlessException e){
e.printStackTrace();
}
catch (Exception e){
e.printStackTrace();
st = null;
}
}
您正在尝试使用默认的[加载数据]选项加载文件。 您尝试上传的csv文件可能使用了不同的格式,例如,不同的FIELD Enclosed By,不同的TERMINATED By或不同的LINE TERMINATED By选项。 以下是转储csv和加载csv文件的示例。 请检查您的csv文件格式并使用其他选项进行验证。
-- -- To dump sql data to csv file
SELECT *
FROM test.yourTableName
INTO OUTFILE 'C:/test/yourTableName.csv'
FIELDS ENCLOSED BY '"' TERMINATED BY ';' ESCAPED BY '"'
LINES TERMINATED BY '\r\n';
-- -- To load data to sql database from csv
LOAD DATA INFILE 'C:/test/yourTableName.csv' INTO TABLE test.yourTableName
FIELDS ENCLOSED BY '"' TERMINATED BY ';' ESCAPED BY '"'
LINES TERMINATED BY '\r\n';
您还可以使用csv2jdbc轻松地跨 csv 个文件和表导入和导出数据,无论您使用的是哪个数据库:
以下语句将使用file.csv
中存在的所有列创建表MY_TABLE
,然后将数据导入表中。
CSV2J COPY MY_TABLE
FROM '/tmp/file.csv'
WITH CSV HEADER CREATE_TABLE DELIMITER ','
下面语句将select语句提取到file.csv
CSV2J COPY (
SELECT 1 AS ID, 10.99 AS AMOUNT, TIMESTAMP '2022-01-31 23:59:58.987' AS DAT_CREATION
UNION ALL
SELECT 2 AS ID, 7.50 AS AMOUNT, TIMESTAMP '2023-01-31 21:59:58.987' AS DAT_CREATION
) TO '/tmp/file.csv' WITH CSV HEADER
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.