我在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!我该怎么办?
最佳答案
您不能为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();
}