我在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();
  }

10-06 12:57