[英]Import CSV data to mysql table within Java program
I have this method to import data from a CSV file.我有这种方法可以从 CSV 文件导入数据。 But the method adds only the PID.
但该方法仅添加 PID。 Any sugestion to fix this??
有什么建议可以解决这个问题吗??
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;
}
}
You're trying to load the file with default [load data] options. 您正在尝试使用默认的[加载数据]选项加载文件。 Might be the chance that the csv file that you're trying to upload have used different format like different FIELD Enclosed By, or different TERMINATED By or different LINE TERMINATED By option.
您尝试上传的csv文件可能使用了不同的格式,例如,不同的FIELD Enclosed By,不同的TERMINATED By或不同的LINE TERMINATED By选项。 here are the examples to dump csv & load csv files.
以下是转储csv和加载csv文件的示例。 Please check your csv file format & verify with different options.
请检查您的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';
You can also use csv2jdbc to easily import and export data across csv files and tables no matter which database you are using:您还可以使用csv2jdbc轻松地跨 csv 个文件和表导入和导出数据,无论您使用的是哪个数据库:
The following statement will create table MY_TABLE
with all columns existing in file.csv
then import the data to the table.以下语句将使用
file.csv
中存在的所有列创建表MY_TABLE
,然后将数据导入表中。
CSV2J COPY MY_TABLE
FROM '/tmp/file.csv'
WITH CSV HEADER CREATE_TABLE DELIMITER ','
The following statement will extract the select statement to file.csv
下面语句将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.