我们在SQL Server数据库上使用prepareStatement.executeQuery运行SELECT语句。查询失败,并出现死锁异常。这里的问题是,异常不是在executeQuery上抛出的,而是在我们执行rs.next()时(即在读取结果集时)抛出的。这种行为有什么原因吗?我们该怎么做才能使其在executeQuery上引发异常?
驱动程序jar-sqljdbc4-4.0.2206.100
Java版本-1.8
已执行查询:SELECT Col1 from Table1 where Col2 = ?
错误跟踪:
com.microsoft.sqlserver.jdbc.SQLServerException: Transaction (Process ID 66) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:217)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet$FetchBuffer.nextRow(SQLServerResultSet.java:6357)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.fetchBufferNext(SQLServerResultSet.java:1798)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.next(SQLServerResultSet.java:1049)