在JDBC中使用setFetchSize进行批读取的情况下,若我们对语句应用超时,那个么它是批级别超时吗?

在JDBC中使用setFetchSize进行批读取的情况下,若我们对语句应用超时,那个么它是批级别超时吗?,jdbc,Jdbc,以下是要获取的每批或总记录的超时时间?的JDBC API文档说明: 设置驱动程序等待语句对象的秒数 以给定的秒数执行。默认情况下,没有 允许运行语句运行的时间限制 完成如果超过该限制,则会出现SQLTimeoutException 扔。JDBC驱动程序必须将此限制应用于执行, executeQuery和executeUpdate方法 注意:JDBC驱动程序实现也可能对ResultSet方法应用此限制(有关详细信息,请参阅驱动程序供应商文档) 详情) 注意:在语句批处理的情况下,其实现定义为超时是

以下是要获取的每批或总记录的超时时间?

的JDBC API文档说明:

设置驱动程序等待语句对象的秒数 以给定的秒数执行。默认情况下,没有 允许运行语句运行的时间限制 完成如果超过该限制,则会出现
SQLTimeoutException
扔。JDBC驱动程序必须将此限制应用于
执行
executeQuery
executeUpdate
方法

注意:JDBC驱动程序实现也可能对
ResultSet
方法应用此限制(有关详细信息,请参阅驱动程序供应商文档) 详情)

注意:在
语句
批处理的情况下,其实现定义为超时是否应用于单个SQL 通过
addBatch
方法添加的命令或添加到整个SQL批中的命令
executeBatch
方法调用的命令(请咨询驱动程序 供应商文件(详细信息)

换句话说,这将取决于您使用的数据库和驱动程序


有些驱动程序可能仅将其应用于执行,并且在执行后获取行可能不受超时限制,有些驱动程序可能将其应用于由
ResultSet.next()触发的单个获取,还有一些人甚至可能在查询执行开始后使用挂钟时间,如果查询执行、获取和处理行的时间超过指定的超时时间,则强制关闭光标(即使服务器响应很快,也可能触发超时,但处理整个结果集所需的时间较长的是客户端)。

的JDBC API文档说明:

设置驱动程序等待语句对象的秒数 以给定的秒数执行。默认情况下,没有 允许运行语句运行的时间限制 完成。如果超过限制,则会显示
SQLTimeoutException
抛出。JDBC驱动程序必须将此限制应用于执行,
executeQuery
executeUpdate
方法

注意:JDBC驱动程序实现也可能对
ResultSet
方法应用此限制(有关详细信息,请参阅驱动程序供应商文档) 详情)

注意:在
语句
批处理的情况下,其实现定义为超时是否应用于单个SQL 通过
addBatch
方法添加的命令或添加到整个SQL批中的命令
executeBatch
方法调用的命令(请咨询驱动程序 供应商文件(详细信息)

换句话说,这将取决于您使用的数据库和驱动程序


有些驱动程序可能仅将其应用于执行,并且在执行后获取行可能不受超时限制,有些驱动程序可能将其应用于由
ResultSet.next()触发的单个获取
,还有一些人甚至可能使用自查询执行开始以来的挂钟时间,如果查询执行、获取和处理行的时间超过指定的超时时间,则强制关闭光标(即使服务器响应速度很快,也可能触发超时,但处理整个结果集的时间较长的是客户端).

这是查询超时,表示请求和第一个响应之间经过的时间。@marqueisoflorne不一定。JDBC中的查询超时主要是特定于驱动程序/数据库的。这是查询超时,表示请求和第一个响应之间经过的时间。@marqueisoflorne不一定。查询超时在JDBC中,基本上是特定于驱动程序/数据库的。
Statement statement = connection.prepareStatement("SELECT * FROM BOOKS");
statement.setFetchSize(100);
statement.setQueryTimeout(10);//Timeout of 10 seconds