-3

我正在使用preparedStatement 插入数据。我正在使用它的 executeQuery() 方法,该方法返回刚刚由 Query 创建的数据的结果集。但是我收到异常说你应该使用语句而不是preparedStatement。
为什么?我应该怎么做才能得到结果集?我想获取自动生成的最后插入记录的 id。
任何帮助表示赞赏。

4

2 回答 2

0

I am using preparedStatement to insert data. I am using its executeQuery()

If you are using preparedStatement for inserting then you should not use executeQuery().

Use executeUpdate()

Note executeUpdate() return int so if you want to check whether inserted or not then do this way

if(executeUpdate()>0)

{
//do some thing
}
{
else
//do somethind
}
于 2013-09-10T08:49:39.917 回答
0

您收到该异常是因为您正在准备插入 (DML) 查询

要检索您的自动生成的密钥,您应该使用以下连接方法创建您的语句

PreparedStatement ps = connection.prepareStatement(myQuery,Statement.RETURN_GENERATED_KEYS );

ps.executeUpdate();

ResutSet rs = ps.getGeneratedKeys();
rs.first();
int generatedKey = rs.getInt(1);
于 2013-09-10T09:07:14.060 回答