在mysql数据库中导入csv

时间:2015-05-18 14:39:05

标签: java mysql

我在netbeans中使用Java开发GUI。我构建了一个按钮,用于使用以下代码在数据库中自动导入csv文件:

JFileChooser fc=new JFileChooser(); 
fc.showOpenDialog(this);
File f=fc.getSelectedFile();
String path=f.getAbsolutePath();
try
{ 
    FileInputStream fin=new FileInputStream(f);
    int len=(int)f.length(); 
    java.sql.PreparedStatement ps1=con.prepareStatement("LOAD DATA LOCAL INFILE 'C:\\Users\\nabil.khedhri.stg\\Desktop\\TT.csv' INTO TABLE essai FIELDS TERMINATED BY ';' LINES TERMINATED BY '\\\\r\\\\n' ");
    ps1.setBinaryStream(1, fin, len); 
    int status =ps1.executeUpdate();
    if(status > 0) 
    { 
        j1.setText("Successfully inserted in DB"); 
    }
    else
    { 
        j2.setText("Image not inserted!"); 
    } 
}
catch(Exception e)
{
    System.out.println(e);
} 

但没有结果。

1 个答案:

答案 0 :(得分:0)

关于此的任何异常消息?检查恶魔mysqld是否运行没有选项'--local-infile = 0'。请检查此“http://dev.mysql.com/doc/refman/5.5/en/load-data-local.html

另外,我真的会再次考虑插入记录的方式。似乎用户能够加载任何文件,从安全角度来看可能非常危险。在mysql手册中阅读此内容。我建议逐行通过一些库读取csv文件,验证它并加载到表中。当然,如果这是开发人员的工具,它只适用于几个开发人员快速修复或加载这样的方式可能没问题。

相关问题