今天在写一个小程序时,用java去链接sql server提示错误:
com.microsoft.sqlserver.jdbc.SQLServerException:已生成用于更新的结果集
寻寻觅觅找了很久之后猛然发现,我是想要查找表的总记录数:
select COUNT(*) from goods
但是我却将链接查询语句写成了如下语句:
preparedStatement = connection.prepareStatement("SELECT COUNT (*) FROM goods");
int rowCount = preparedStatement.executeUpdate();
当时想的是我要的结果是一个数,就与删除,添加等操作结果会返回影响的行数混淆,其实查询语句不论是要一个数还是什么,都是返回一个结果集,而应该用ResultSet来接受,然后再从结果集中取出我们想要的结果。
正确用法为:
preparedStatement = connection.prepareStatement("SELECT COUNT (*) FROM goods");
resultSet = preparedStatement.executeQuery();
if(resultSet.next())
{
rowCount = resultSet.getInt(1);
}