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