日期:2014-05-16  浏览次数:20565 次

JDBC插入并返回自增长主键
刚发现有这个功能,原来一直在琢磨hibernate怎么实现而且防止并发的,原来是我土了……

//mysql
CREATE TABLE foo(id INT NOT NULL AUTO_INCREMENT, name VARCHAR(16), PRIMARY KEY(id));


//java
String sql = "INSERT INTO foo(name) VALUES(?)"
PreparedStatement st = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
st.setString(1, "bar");
int row = st.executeUpdate();
ResultSet rs = st.getGeneratedKeys();
if(rs.next())
    int generatedKey = rs.getInt(1); //只读第一列^_^