相关疑难解决方法(0)

如何在JDBC中获取插入ID?

我希望INSERT在Java中使用JDBC中的数据库(在我的情况下是Microsoft SQL Server)中的记录.同时,我想获取插入ID.如何使用JDBC API实现此目的?

java sql insert-id jdbc

366
推荐指数
5
解决办法
26万
查看次数

有没有办法从预准备语句中检索自动增量ID

有没有办法在使用带有预准备语句的java查询时从数据库查询中检索自动生成的密钥.

例如,我知道AutoGeneratedKeys可以如下工作.

stmt = conn.createStatement();

stmt.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);
if(returnLastInsertId) {
    ResultSet rs = stmt.getGeneratedKeys();
    rs.next();
    auto_id = rs.getInt(1);
} 
Run Code Online (Sandbox Code Playgroud)

然而.如果我想使用准备好的Statement进行插入,该怎么办?

String sql = "INSERT INTO table (column1, column2) values(?, ?)";
stmt = conn.prepareStatement(sql);

//this is an error
stmt.executeUpdate(Statement.RETURN_GENERATED_KEYS);
if(returnLastInsertId) {
    //this is an error since the above is an error
    ResultSet rs = stmt.getGeneratedKeys();
    rs.next();
    auto_id = rs.getInt(1);
} 
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点,我不知道.从javadoc看来,PreparedStatements无法返回自动生成的ID.

java mysql prepared-statement auto-increment

59
推荐指数
1
解决办法
9万
查看次数

标签 统计

java ×2

auto-increment ×1

insert-id ×1

jdbc ×1

mysql ×1

prepared-statement ×1

sql ×1