java - 在mysql数据库中导入csv

标签 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);
} 

但没有结果。

最佳答案

有任何异常消息吗?检查守护进程 mysqld 是否在没有选项“--local-infile=0”的情况下运行。检查这个“http://dev.mysql.com/doc/refman/5.5/en/load-data-local.html

另外,我真的会再次考虑这种插入记录的方式。似乎用户可以加载任何文件,从安全角度来看这可能非常危险。请阅读 mysql 手册了解这一点。我建议通过一些库逐行读取 csv 文件,验证它并加载到表中。当然,如果这是开发人员的工具,并且仅适用于少数开发人员进行快速修复或加载,这样的方式可能还可以。

关于java - 在mysql数据库中导入csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30306130/

相关文章:

java - 将 double 转换为字符串时遇到问题

java - 使用 java 刷新 Excel 查询

mysql - MySQL 查询无结果

MySQL服务器性能

最近点的 MySQL 空间连接

mysql - 如何同时使用 INSERT、SELECT 和 SET?

java - 在 Java 类中使用接口(interface)

java - GridBagLayout 中的 JScrollPanes 随机调整大小

java - 增强java代码以提高效率

php - 如何从特定行开始计算表格的所有行