简体   繁体   English

Java程序内导入CSV数据到mysql表

[英]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 个文件和表导入和导出数据,无论您使用的是哪个数据库:

Import CSV file from client machine to a database Table从客户端机器导入 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 ','

Export Select statement to a CSV file将 Select 语句导出到 CSV 文件

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM