0
我在圖書館sqlite-jdbc-3.16.1.jar
的Java(eclipse)中使用sqlite數據庫。SQL增量ID,填充數據庫的第一行
我在表1 5行:ID(ID INTEGER PRIMARY KEY AUTOINCREMENT),姓名,ROW3,ROW4,ROW5
我想插入名稱,ROW3和ROW4並增加自己的ID。
public static void insertTest(String name, byte[] contentRow3, byte[] contentRow4) {
String sql = "INSERT INTO table1(name, contentRow3, contentRow4) VALUES(?,?,?)";
try (Connection conn = connect();
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(2, name);
pstmt.setBytes(3, contentRow3);
pstmt.setBytes(4, contentRow4);
System.out.println("Added new Person to DB");
pstmt.executeUpdate();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
錯誤:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
有什麼問題嗎?
所以setString之後的數字不是行數? – nolags
您在'PreparedStatement'上設置的值對應於SQL查詢中的問號佔位符。索引編號從1開始,並且由於您有3個問號,因此您應該設置1,2和3。 –