代码如下所示,主要是想插入一条数据后,返回该记录的主键,主键是自增的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();