JAVA中获取刚插入数据库中的数据ID(主键,自动增长)

//添加用户
    public User add(User user) {
        Connection con = null;
        PreparedStatement stm = null;
        ResultSet rs = null;
        User info = null;
        try{
            // 与数据库建立连接
            con = JDBCUtils.getConnection();
            //sql语句
            String sql = "insert into user_info(username,password) value(?,?)";
            stm=con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
            //填充占位符
            stm.setString(1,user.getName());
            stm.setString(2,user.getPassword());

            stm.executeUpdate();
            //获取最后ID。
            rs=stm.getGeneratedKeys();
             //int n = stm.executeUpdate(); // 返回受影响的行数
            if(rs.next()){
                // 这里还要再实例化一次,找了几个钟啊,回忆总想哭
                info = new User();
                int id = rs.getInt(1);
                info.setId(id);
                return info;
            }else{
                return null;
            }
        }
        catch (Exception exc){
            exc.printStackTrace();
        }
        finally {
            // 关闭资源
            JDBCUtils.close(null,stm,con);
        }

        return null;
    }

关键语句stm=con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); rs=stm.getGeneratedKeys();
设置增长起始值alter table 表名 AUTO_INCREMENT=1000; 这里设置起始值是1000

posted @ 2020-07-27 22:59  大海&  阅读(3993)  评论(0编辑  收藏  举报