MySQL增加、删除、更改后返回自动生成的主键id的方法

MySQL增加、删除、更改后返回自动生成的主键id的方法


1.核心语句


PreparedStatement pst=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);

ResultSet keys=pst.getGeneratedKeys();


2. 举例

    /**
     * 添加操作,并返回该操作记录自动生成的id
     * 
     * @param p 个人信息实体
     * @return 返回此记录自动生成的id
     */
    public int addPerson(Person p) {
        String sql = "INSERT INTO person(name,gender) VALUES(?,?)";
        int id = 1;//存储此记录自动生成的id
        Connection conn = null;
        PreparedStatement pst = null;
        ResultSet keys = null;
        try {
            conn = DBCPUtil.getCurrendThreadConnection();
            //Statement.RETURN_GENERATED_KEYS 返回此记录自动生成的id
            pst = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
            pst.setString(1, p.getName());
            pst.setString(2, p.getGender());
            int row = pst.executeUpdate();
            if(row > 0){
                /*
                 * 获取此记录自动生成的id
                 */
                keys = pst.getGeneratedKeys();
                if(keys.first()) {
                    id = keys.getInt(1);
                }
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBCPUtil.closeAll(keys, pst, null);
        }
        return id;
    }

你可能感兴趣的:(MySQL)