我在sqlite中有一个表(在java中),它有3列,ID是自动重写的。
stat.executeUpdate("create table Info (ID INTEGER PRIMARY KEY AUTOINCREMENT, age int, point int);");
当我想在该表中插入时,我有这个功能
DataBase.databaseInsertInfoTable(data.age, data.point);
和
public static void databaseInfoTable(int age,int point) throws Exception {
PreparedStatement prepInfo = conn.prepareStatement(
"insert into Info (age, point)values (?, ?);");
prepInfo.setInt(2, age);
prepInfo.setInt(3, point);
prepInfo.addBatch();
prepInfo.executeBatch();
conn.setAutoCommit(true);
prepInfo.close();
}
我有一个错误,说错误的参数我想为ID插入空值但是它也不起作用所以我在插入中省略了ID!我该怎么办?
答案 0 :(得分:2)
您无法为AUTOINCREMENT字段插入空值。删除语句末尾的分号,看看它是否适合你。
编辑:试试这个。
public static void databaseInfoTable(int age,int point) throws Exception {
PreparedStatement prepInfo = conn.prepareStatement(
"insert into Info (age, point)values (?, ?)");
prepInfo.setInt(1, age);
prepInfo.setInt(2, point);
prepInfo.addBatch();
conn.setAutoCommit(false);
prep.executeBatch();
conn.commit();
}