我在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);
}
但没有结果。
答案 0 :(得分:0)
关于此的任何异常消息?检查恶魔mysqld是否运行没有选项'--local-infile = 0'。请检查此“http://dev.mysql.com/doc/refman/5.5/en/load-data-local.html
另外,我真的会再次考虑插入记录的方式。似乎用户能够加载任何文件,从安全角度来看可能非常危险。在mysql手册中阅读此内容。我建议逐行通过一些库读取csv文件,验证它并加载到表中。当然,如果这是开发人员的工具,它只适用于几个开发人员快速修复或加载这样的方式可能没问题。