Я использую базу данных SQLite и графический интерфейс Java. Информация, введенная в GUI, будет добавлена в таблицу базы данных. Эта таблица содержит автоинкремент. В то же время я хочу отобразить информацию в графическом интерфейсе и изменить ее позже.
создание базы данных:
stat.executeUpdate("create table t1(ROWID INTEGER PRIMARY KEY AUTOINCREMENT, Value);";
добавление значений в базу данных:
Statement stat = con.createStatement();
String sql = "insert into t1 values ($next_id,'"+value+');";
stat.executeUpdate(sql);
Как сохранить идентификатор в моей программе, чтобы он был таким же, как в базе данных, и у меня был легкий доступ к моей базе данных?
Edit:
Я попробовал решение, упомянутое в комментариях, и наткнулся на исключение NYI ...
String sql = "insert into t1 values($next_id,'"+value+"');";
PreparedStatement stmt = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
ResultSet res = stmt.getGeneratedKeys();
while (res.next()){
int id = res.getInt(1);
System.out.println(id);
}
con.commit();
попробовал также решение Рассела и получил еще одно исключение («не реализовано драйвером SQLite JDBC»):
String sql = "insert into t1 values($next_id,'"+value+"');";
Statement stat = con.createStatement();
stat.executeUpdate(sql);
stat.executeUpdate("SELECT LAST_INSERT_ROWID() from t1;", Statement.RETURN_GENERATED_KEYS);
ResultSet res = stat.getGeneratedKeys();
while (res.next()){
int id = res.getInt(1);
System.out.println(id);
}
Что я не так сделал?