【发布时间】:2012-02-06 11:04:42
【问题描述】:
我使用 SQLite 数据库和 Java GUI。在 GUI 上输入的信息将被添加到数据库中的表格中。此表包含一个自动增量。同时我想在 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);
如何将 ID 保存在我的程序中,以便它与数据库中的相同,并且我可以轻松访问我的数据库?
编辑: 我尝试了 cmets 中提到的解决方案并遇到了 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();
也尝试了 Russel 的解决方案并得到了另一个异常(“未由 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);
}
我做错了什么?
【问题讨论】:
-
看看 [this][1] stackoverflow 问题。 [1]:stackoverflow.com/questions/76254/…
-
@vucetica 谢谢我之前没有看到其他线程。不幸的是,我现在遇到了 NYI 异常...
标签: java database sqlite odbc auto-increment