我用 Java 创建了一个 SQLite 表:
create table participants (ROWID INTEGER PRIMARY KEY AUTOINCREMENT, col1,col2);
我试图添加行:
insert into participants values ("bla","blub");
错误:
java.sql.SQLException:表参与者有 3 列,但提供了 2 个值
我以为 ROWID
会自动生成。我尝试了另一种解决方案:
PreparedStatement prep = conn.prepareStatement("insert into participants values (?,?,?);");
Integer n = null;
prep.setInt(1,n);
prep.setString(2, "bla");
prep.setString(3, "blub");
prep.addBatch();
prep.executeBatch();
我在 prep.setInt(1,n);
收到空指针异常。你看到错了吗?
原文由 Anthea 发布,翻译遵循 CC BY-SA 4.0 许可协议
您是否尝试过指示您传递的参数应该与表的哪些字段相关?
在你的情况下可能是这样的: