获取标识主键的最新插入值

时间:2013-05-31 19:14:22

标签: java mysql

我有一个Statement,我在数据库的表中插入了一些值,这个表有一个主键,它的名称是numBon

当我执行insert命令时,我希望获得numBon的值。

现在我正在使用此代码:

Statement st = connection.createStatement();
ResultSet result = st.executeQuery("SELECT MAX(numBon) FROM BonInterne");
int numBon;
if (result.next()) {
            numBon = result.getInt("numBon");
        }

没有其他办法吗?

2 个答案:

答案 0 :(得分:0)

这是一个自动增量列吗?假设是,你可以这样做:

SELECT LAST_INSERT_ID()

但这不是数据库不可知的。 This article gives a much better answer.或者您可以查看@ eidsonator的评论,以查看如何从插入语句中获取ID的更快速的片段。

答案 1 :(得分:0)

使用Statement.getGeneratedKeys()检索自动生成的值。

Statement st = connection.createStatement();
st.execute("insert into ... "); //query where the server generates a value for
                                 //an auto incremented column
ResultSet rs = st.getGeneratedKeys
int numBon;
if (rs.next()) { 
  numBon = result.getInt(1);
}