2010-11-17 75 views
2

有沒有簡單的CSV文件轉換爲SQL文件的方式比這?:簡單的CSV到SQL的Java文件轉換器

BufferedReader input = new BufferedReader(new FileReader(new File("c:\\file.csv")));  
Writer output = new BufferedWriter(new FileWriter(new File("c:\\file.sql"))); 

try { 
    String line = null; 
    String[] st = null; 

    while ((line = input.readLine()) != null) { 
    st = line.replace("\"","").split(","); 

    output.write("INSERT INTO `table` " 
        + "(`column_id`, `column1`, `column2`) VALUES " 
        + "(" + st[2] + ", " + st[0] + ", " + st[1] +")" 
        + ";" 
        + "COMMIT;\n"); 

    } 
} finally { 
    input.close(); 
    output.close(); 
} 
+0

@Asaph:最多支持CSV導入=) – 2010-11-17 04:44:46

+0

您使用的數據庫是?它是MySQL嗎?如果是這樣,您可以使用一些熟練撥打的選項,通過'LOAD DATA INFILE'導入CSV文件。 – Asaph 2010-11-17 04:44:58

回答

1

如果你沒有找到一個簡單的解決方案是謹慎做的CSV一個簡單的分裂數據。從經驗來說,這是有效的CSV文件,這將打破一個簡單的拆分方案:

"field 1a, field 1b", field2, "field 3a, field3b", field4 

我建議尋找一個如opencsv庫來處理CSV解析爲您服務。

1

使用一個現成的csv解析器庫,如one。否則,你將需要一個小型的狀態機來處理引號內的逗號。

我也看到你沒有執行SQL,而是將sql語句寫入文件。大多數數據庫都帶有一個加載實用程序,它將接受一個csv文件作爲輸入。