java jdbc插入返回主键错误

代码如下所示,主要是想插入一条数据后,返回该记录的主键,主键是自增的int(11)类型.



public int executeUpdate(String sql) {
        int ret = 0;
        try {
            stmt=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);  
            ret = stmt.executeUpdate(sql);
            ResultSet rs=stmt.getGeneratedKeys();
             if (rs.next()) {  
                    Long id = rs.getLong(1);   
                    System.out.println("数据主键:" + id);  } 
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return ret;
    }

然后报错如下:
java.sql.SQLException: Generated keys not requested. You need to specify Statement.RETURN_GENERATED_KEYS to Statement.executeUpdate(), Statement.executeLargeUpdate() or Connection.prepareStatement().
请问该如何修改?

你可以把你的sql贴出来么?
看不到你插入的数据啊?
//还有就是除了主键之外你像下面这样设置其他参数的值了没?
stmt.setString(1, "****");
stmt.setString(2, "****");
//然后执行相面的操作 这里没有传入sql
stmt.executeUpdate();
ResultSet rs = stmt.getGeneratedKeys();

ret = stmt.executeUpdate();试试

ret = stmt.executeUpdate(sql);
改成
ret = stmt.executeUpdate();