SQL

JAVA with SQL:insert命令的返回值?

发布于 2021-05-10 21:07:35

我有一个作者表:authorID,authorName。authorID是具有自动增量的pk。

我想用Java编写一个方法,该方法从用户那里获取一个名称并将其添加到表中。但是我需要返回作者的ID。有没有办法用1条sql语句来做到这一点?

例如,如果我的代码具有以下命令:

stmt.executeUpdate("INSERT INTO authors " + "VALUES (, '"+ string.get(1) +"')");

其中string.get(1)是作者名称。

现在,如果我写:

ResultSet rs =stmt.executeUpdate("INSERT INTO authors " + "VALUES (, '"+ string.get(1) +"')");

它说错误,因为rs是结果集,但返回值是int。这是我插入的行的pk的int吗?

关注者
0
被浏览
77
1 个回答
  • 面试哥
    面试哥 2021-05-10
    为面试而生,有面试问题,就找面试哥。

    尝试

    stmt.executeUpdate("INSERT INTO authors VALUES (, '"+ string.get(1) +"')", Statement.RETURN_GENERATED_KEYS);
    ResultSet rs = stmt.getGeneratedKeys();
    rs.next();
    long pk = rs.getLong(1);
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看