java - 使用 opencsv 时出现 ArrayIndexOutOfBoundsException 错误

标签 java opencsv

我希望有人能启发我为什么收到错误:“线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 1”

我正在使用 opencsv 从 csv 插入数据,并且代码确实有效,因为数据已按预期插入到表中。但是我得到了错误。

下面是我的代码:

    PreparedStatement sql_statement = null;         
    String jdbc_insert_sql = "INSERT INTO wifi_users(email, first_name, last_name, gender, birthday, opted_in) VALUES (?, ?, ?, ?, ?, ?)";
    sql_statement = conn.prepareStatement(jdbc_insert_sql);

    /* Read CSV file in OpenCSV */
    String inputCSVFile = "/Users/Gerry/Documents/workspace/sql_out_connection/users.csv";
    CSVReader reader = new CSVReader(new FileReader(inputCSVFile));

    /* Variables to loop through the CSV File */
    String [] nextLine; /* for every line in the file */ 
    int lnNum = 0; /* line number */
    while ((nextLine = reader.readNext()) != null) {
            lnNum++;                    
            sql_statement.setString(1,(nextLine[0]));
            sql_statement.setString(2,(nextLine[1]));
            sql_statement.setString(3,(nextLine[2]));
            sql_statement.setString(4,(nextLine[3]));
            sql_statement.setString(5,(nextLine[4]));
            sql_statement.setDouble(6,Double.parseDouble(nextLine[5]));
            /* execute the insert statement */
            sql_statement.executeUpdate();
    }   

有人知道我为什么会收到此错误吗?

最佳答案

CSV 文件中的某一行的值少于预期的最小值 6 个值 (0-5),因此出现 ArrayIndexOutOfBoundsException。

在继续数据库更新之前,您可能应该验证是否需要 6 个值。

顺便说一句,您不需要在值两边添加括号。最好像这样...

sql_statement.setString(1, nextLine[0]);

关于java - 使用 opencsv 时出现 ArrayIndexOutOfBoundsException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36140878/

相关文章:

Java JSON - gson - 附加新数据,格式错误的 JSON

java - 在 Java 中获取给定周数、星期几和年份的日期

Java Sql 更新语句。处理引号中的 Null

java - 在maven中构建pom时找不到包错误

java - 为什么 JpaRepository 不更新我的实体?

java - 打开CSV将结果集导出为字符串类型

java - opencsv中的UTF-8编码

java - 附加到没有标题的 CSV 文件

java - CSV 类未找到异常

java - 使用打开的csv解析txt文件