【发布时间】:2016-02-19 15:59:54
【问题描述】:
我正在做一个项目,它将读取 Excel 电子表格行的每个单元格的内容,并将所有这些信息存储在 String ArrayLists 的 ArrayList 中,然后将所有这些行作为记录插入 MySQL 数据库。
我有一个方法可以很好地提取这些数据,并返回字符串数组列表的完整数组列表。我遇到的问题是尝试将这些 String ArrayLists 作为记录插入 SQL 数据库。我在运行时遇到索引越界异常。
谁能解释一下我哪里出错了?我认为我对 ArrayLists/looping/JDBC/之前的所有内容的理解存在一些根本性的缺陷。
public void insertData(ArrayList<ArrayList<String>> l) {
try {
String insert = "INSERT INTO 1person (ModuleNumber, ModuleTitle, School, ModuleCoordinator, NumberOfStudents, ExamCW, Courses, Blankety, Blank) VALUES (?,?,?,?,?,?,?,?,?)";
PreparedStatement ps = con.prepareStatement(insert);
for (ArrayList<String> ar1 : l) {
//for(int i = 0; i < ar1.size(); i ++){
//ps.setString(i+1, ar1.get(i)
ps.setString(1, ar1.get(0).toString());
ps.setString(2, ar1.get(1).toString());
ps.setString(3, ar1.get(2).toString());
ps.setString(4, ar1.get(3).toString());
ps.setString(5, ar1.get(4).toString());
ps.setString(6, ar1.get(5).toString());
ps.setString(7, ar1.get(6).toString());
ps.setString(8, ar1.get(7).toString());
ps.setString(9, ar1.get(8).toString());
//}
}
ps.execute();
} catch (Exception ex) {
System.out.println(ex);
}
}
返回:java.lang.IndexOutOfBoundsException:索引:8,大小:8
【问题讨论】:
-
您的列表大小
8,但您正尝试从列表中检索9项目为ar1.get(8)。 -
你能解决这个问题吗?
-
是的 Jan,谢谢。抱歉回复晚了。