JDBC getUpdateCount 在 SQL Server 中返回 0,但更新了 1 行
2022-09-04 04:56:16
有人见过这个吗?我正在使用MS SQL Server 2008,并且我已经尝试使用两个不同的JDBC驱动程序(jtds和Microsoft的)。我运行一个简单的语句来更新一行,它确实更新了它,但返回0。如果我尝试对不同的表进行尝试,它将按预期返回1。这是关于这张桌子的东西。getUpdateCount
PreparedStatement ps =
conn.prepareStatement("select count(*) from foo_users where user_id = 1")
ResultSet rs = ps.executeQuery();
rs.next()
println(" count(*) is " + rs.getInt(1)); // Prints 1
ps = conn.prepareStatement("update foo_users set is_admin = 1 where user_id = 1")
ps.execute()
int count = ps.getUpdateCount()
println(" update count is " + count) // Prints 0. WTF.
这是什么原因造成的?
更新以回应评论:是的,有效。但是我问这个问题是因为我使用的是一个名为jOOQ的查询库,它返回了不正确的结果,因为它正在调用和。我最初没有问这个问题,因为我不认为这是图书馆的错。executeUpdate
execute
getUpdateCount