您的位置:首页 > 数据库 > MySQL

获得MySQL数据库自动生成的主键

2016-08-24 21:54 323 查看
有时候在开发中要获得MySQL数据库自动生成的主键,那么如何获得呢?

我们可以查看JDK API 1.6.0文档,就能知道Connection接口里面有一个如下方法:



autoGeneratedKeys:指示是否应该返回自动生成的键的标志,它是
Statement.RETURN_GENERATED_KEYS
Statement.NO_GENERATED_KEYS
之一 。

测试脚本如下:

create table test
(
id int primary key auto_increment,
name varchar(40)
);


测试代码:

public class Demo4 {

/*
create table test ( id int primary key auto_increment, name varchar(40) );
*/

// 获取自动生成的主键
public static void main(String[] args) throws SQLException {

Connection conn = null;
PreparedStatement st = null;
ResultSet rs = null;

try {
conn = JdbcUtils.getConnection();
String sql = "insert into test(name) values('yelei')";
/*
* PreparedStatement prepareStatement(String sql, int autoGeneratedKeys)
* autoGeneratedKeys - 指示是否应该返回自动生成的键的标志,它是 Statement.RETURN_GENERATED_KEYS或Statement.NO_GENERATED_KEYS之一
*
* st = conn.prepareStatement(sql)默认是不返回自动生成的主键
s */
st = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); // Statement.RETURN_GENERATED_KEYS参数——是否得到sql语句生产的主键
st.executeUpdate();

rs = st.getGeneratedKeys();
if (rs.next()) {
System.out.println(rs.getInt(1));
}

} finally {
JdbcUtils.release(conn, st, rs);
}

}
}


注意:

st = conn.prepareStatement(sql);


默认是不返回自动生成的主键的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: