除了用存储过程还有以下方法可以获取:
static int create() throws SQLException { 
    Connection conn = null; 
    PreparedStatement ps = null; 
    ResultSet rs = null; 
    try { 
        // 2.建立连接 
        conn = JdbcUtils.getConnection(); 
        // conn = JdbcUtilsSing.getInstance().getConnection(); 
        // 3.创建语句 
        String sql = "insert into user(name,birthday, money) values ('name2 gk', '1987-01-01', 400) "; 
        ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);//参数2最好写上,虽然Mysql不写也能获取但是不代表别的数据库可以做到 
        ps.executeUpdate();
        rs = ps.getGeneratedKeys(); 
        int id = 0; 
        if (rs.next()) 
            id = rs.getInt(1); 
        return id; 
    } finally { 
        JdbcUtils.free(rs, ps, conn); 
    } 
}
getGeneratedKeys
ResultSet getGeneratedKeys()throws SQLException
- 获取由于执行此 Statement对象而创建的所有自动生成的键。如果此Statement对象没有生成任何键,则返回空的ResultSet对象。注:如果未指定表示自动生成键的列,则 JDBC 驱动程序实现将确定最能表示自动生成键的列。 
- 返回:
- 包含通过执行此 Statement对象自动生成的键的ResultSet对象 抛出:
- SQLException- 如果发生数据库访问错误,或者在已关闭的- Statement上调用此方法
- SQLFeatureNotSupportedException- 如果 JDBC 驱动程序不支持此方法 从以下版本开始:
- 1.4
 
- 包含通过执行此