我希望获得插入行的自增id。我知道有很多关于如何实现这个功能的例子:
但我使用的是HSQL 1.8.0.10,以下是我的代码:
PreparedStatement ps = conn.prepareStatement("insert into dupa (v1) values(3)", Statement.RETURN_GENERATED_KEYS);
抛出异常:
java.sql.SQLException: This function is not supported
如果驱动程序不支持上述解决方案,要如何获得id。 有没有其他方法来获取插入行的自动递增键?我想尽可能处理驱动程序。因此,希望在
try
部分中使用上述代码,并在catch
部分中使用另一种方式。第二个问题:数据库是否支持此功能是可能的。因此,即使我使用新驱动程序和旧数据库,它仍将不起作用吗?我尝试使用hsql 2.3.2驱动程序,但无法连接到1.8.0.10数据库。
prepareStatement(sql,Statement.RETURN_GENERATED_KEYS)
,该如何检索生成的密钥。正如我在问题中所写,这段代码在我的情况下会引发异常。也许如果JDBC驱动程序向后兼容(换句话说,我可以使用新驱动程序连接到旧数据库),并且所有DBMS都可以返回生成的密钥,则只需使用JDBC 4驱动程序即可。但我不知道。 - Mariusz