簡體   English   中英

Java程序內導入CSV數據到mysql表

[英]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 個文件和表導入和導出數據,無論您使用的是哪個數據庫:

從客戶端機器導入 CSV 文件到數據庫表

以下語句將使用file.csv中存在的所有列創建表MY_TABLE ,然后將數據導入表中。

CSV2J COPY MY_TABLE 
FROM '/tmp/file.csv' 
WITH CSV HEADER CREATE_TABLE DELIMITER ','

將 Select 語句導出到 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