Java最后一个插入ID无效

Java最后一个插入ID无效,java,mysql,jdbc,last-insert-id,Java,Mysql,Jdbc,Last Insert Id,可能重复: 我试图获取最后一个插入ID,但显然它不起作用,它不断给我带来一系列错误,其中之一就是这个 java.sql.SQLException: Can not issue SELECT via executeUpdate(). 我试图得到最后一个插入它,但它不工作,这是我的代码 public int getLastInsertID(){ try{ Statement statement = conn.createStatement();

可能重复:

我试图获取最后一个插入ID,但显然它不起作用,它不断给我带来一系列错误,其中之一就是这个

java.sql.SQLException: Can not issue SELECT via executeUpdate().
我试图得到最后一个插入它,但它不工作,这是我的代码

public int getLastInsertID(){
        try{
        Statement statement =  conn.createStatement();
        ResultSet rs = null;
        statement.executeUpdate("SELECT LAST_INSERTED_ID", Statement.RETURN_GENERATED_KEYS);
        rs = statement.getGeneratedKeys();
        while(rs.next()){
            System.out.println(""+rs.getInt(1));
            id =    rs.getInt(1);
            JOptionPane.showMessageDialog(null,id);

        }

        }catch(Exception e){
            e.printStackTrace();
        }

        return id;
    }
}
第二个是

public void addEmployee(Personal p ,Contact c,Employee e) {
        Statement statement = null;

        String insert0 = "INSERT INTO `finalpayroll`.`users` (`emp_id`, `emp_pass`) VALUES ('2010-010122', '1231922')";
        try{
            statement = conn.createStatement();
            statement.executeUpdate(insert0);
            statement.close();
        }catch(Exception ex){
            ex.printStackTrace();
        }
        id = getLastInsertID();

        String insert1 = "INSERT INTO personal_info (`idpersonal_info`,`First_Name`, `Middle_Initial`, `Last_Name`, `Date_Of_Birth`, `Marital_Status`, `Beneficiaries`) VALUES ("+id+",'"+p.getFirstName()+"', '"+p.getMiddleInitial()+"'" +
                "       , '"+p.getLastName()+"', '"+p.getDateOfBirth()+"', '"+p.getMaritalStatus()+"', '"+p.getBeneficiaries()+"')";
        try{
            statement = conn.createStatement();

        statement.executeUpdate(insert1);
        statement.close();
        conn.close();
        JOptionPane.showMessageDialog(null, "Employee Added!!");
        }catch(Exception ex){
            ex.printStackTrace();
        }


    }

如何获取最后插入的id?我的方法出了什么问题?

看起来可能是mysql驱动程序的某些版本存在缺陷。在源代码中搜索错误消息。他们没有检查getGeneratedIds条件


自2005年以来,MySQL也有一个类似的“不会修复”版本。讨论中提到JDBCAPI并不要求驱动程序支持该特性。似乎这是一个已知且未解决的问题。

@BalusC它们完全不同,我只是想问为什么我的代码不起作用