多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
有时候在开发中要获得MySQL数据库自动生成的主键,那么如何获得呢? 我们可以查看JDK API 1.6.0文档,就能知道Connection接口里面有一个如下方法: ![](https://box.kancloud.cn/9f5dee8b72de8b65b387f23b9c3b11ad_933x82.png) 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); ~~~ 默认是不返回自动生成的主键的。