PreparedStatement pstmt=DB.getPstmt(conn, sql,Statement.RETURN_GENERATED_KEYS);
pstmt.setInt(1, 0);
//2.------------------------------
pstmt.setInt(2, rootid);
pstmt.setString(3, title);
pstmt.setString(4, content);
pstmt.setInt(5, 0);
pstmt.executeUpdate();
//1.----------------------------------------------------------------------------------
//拿到这个KEY
//通过ResultSet 获得一个RS集,这个集里面只有自动生成的这个KEY
ResultSet rsKey=pstmt.getGeneratedKeys();
//然后同过Rs的获取值的方法
rsKey.next();
rootid=rsKey.getInt(1);
//1.-----------------------------------------------------------------------------------
为什么把//1--------------
//1--------------之间的代码放在
//2.-----------------会报错
------解决方案--------------------
你参数每设全,而且还没执行过,这个时候就想去取结果,当然报错
rootid=rsKey.getInt(1);--------------param的下标是从0,开始的,这里是1意思是你第二个参数没设