java - 第 1 行不包含所有列的数据 MySQL JDBC Eclipse 错误

标签 java mysql jdbc

我正在尝试使用 Eclipse 中的 java 程序将 .csv 文件的内容插入到数据库表中。但是,我收到以下错误消息。

Exception in thread "main" java.sql.SQLException: Row 1 doesn't contain data for all columns

我确实研究过类似的帖子,但无法找到我的代码的解决方案。知道如何解决这个问题吗?

csv 文件中的示例数据:

tconst_titles,titleType,primaryTitle,originalTitle,isAdult,startYear,endYear,runtimeMinutes

tt1,short,Carmencita,Carmencita,0,1894,0000,1
tt2,short,Le clown et ses chiens,chiens,0,1892,0000,5
tt3,short,Pauvre Pierrot,Pauvre Pierrot,0,1892,0000,4

我的代码:

import java.sql.*;

public class populate { 

  public static void main(String[] args) throws SQLException {

    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/IMDB","root","user");
    Statement stmt = con.createStatement();
    String sql = 
        "load data local infile 'titles.csv' \n" +
        "   replace \n" +
        "   into table Titles \n" +
        "   columns terminated by '\\t' \n" +
        "   ignore 1 lines";
    stmt.execute(sql);
      }
}

最佳答案

问题出在你的java代码中。您用 \t(制表符)而不是 , 分隔:

"   columns terminated by '\\t' \n" +

这一行应该是:

"   columns terminated by ',' \n" +

如果您想通过 \t 分隔列,您可以将 csv 文件数据更改为如下所示:

tt1 short   Carmencita  Carmencita  0   1894    0000    1
tt3 short   Pauvre_Pierrot  Pauvre_Pierrot  0   1892    0000    4
tt4 short   Pauvre_Pierrot  Pauvre_Pierrot  0   1892    0000    4

顺便说一句,csv 表示逗号分隔值

关于java - 第 1 行不包含所有列的数据 MySQL JDBC Eclipse 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49122505/

相关文章:

java - Godaddy API 自动化获取所有域名

php - 在使用 foreach + mysql INSERT 时遇到问题

java - JMeter 从 Java 代码预定义 JMX 执行

java - 获取正则表达式匹配后的文本

java - JAR 中的静态变量在进程之间共享?

mysql - 检索 2 个连接表的相似列

INSERT 子查询中的 MySQL 语法错误

sql-server - 从 Microsoft jdbc 驱动程序切换到 JTDS 驱动程序有哪些优点或缺点?

java jar 类路径错误帮助

java - 根据从 map 获得的优先级对 ArrayList 进行排序(Java 版本 < Java8)