[英]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.