我正在使用preparedStatement来插入数据。我正在使用它的executeQuery()方法,它返回由Query创建的数据的resultSet。但我得到例外说你应该使用statement而不是preparedStatement 为什么?我该怎么做才能得到结果集?我想获取自动生成的最后插入记录的id 任何帮助表示赞赏。
答案 0 :(得分:0)
我正在使用preparedStatement来插入数据。我正在使用它的executeQuery()
如果您使用preparedStatement
进行插入,则不应使用executeQuery()
。
使用executeUpdate()
注意强> executeUpdate()返回int,如果你想检查是否插入,那么就这样做
if(executeUpdate()>0)
{
//do some thing
}
{
else
//do somethind
}
答案 1 :(得分:0)
您获得该异常是因为您正在准备插入(DML)查询
要检索自动生成的密钥,您应该使用以下连接方法
创建语句PreparedStatement ps = connection.prepareStatement(myQuery,Statement.RETURN_GENERATED_KEYS );
ps.executeUpdate();
ResutSet rs = ps.getGeneratedKeys();
rs.first();
int generatedKey = rs.getInt(1);