Dad*_*box 13 java sql jdbc h2 unique-id
我目前的方法是这样的:
SELECT TOP 1 ID FROM DATAENTRY ORDER BY ID DESC
Run Code Online (Sandbox Code Playgroud)
这假设最新插入的项始终具有最高的唯一ID(主键,自动增量).这里闻起来有点不对劲.
备择方案?
Bal*_*usC 26
如果JDBC驱动程序支持它,您也可以使用Statement#getGeneratedKeys()它.
String sql = "INSERT INTO tbl (col) VALUES (?)";
preparedStatement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
preparedStatement.setString(1, col);
preparedStatement.executeUpdate();
generatedKeys = preparedStatement.getGeneratedKeys();
if (generatedKeys.next()) {
long id = generatedKeys.getLong(1);
} else {
// Throw exception?
}
Run Code Online (Sandbox Code Playgroud)
如果使用MySQL,你可以做到
select last_insert_id();
Run Code Online (Sandbox Code Playgroud)
如果使用MS SQL
select scope_identity();
Run Code Online (Sandbox Code Playgroud)
对于H2,我相信它
CALL SCOPE_IDENTITY();
Run Code Online (Sandbox Code Playgroud)
但我对该数据库没有任何经验
| 归档时间: |
|
| 查看次数: |
11979 次 |
| 最近记录: |