我有一个应用程序,我想在其中定义要为连接预取的默认行数,同时用于Oracle和SQL Server驱动程序。Oracle驱动程序具有一个OracleConnection接口,该接口提供了setDefaultRowPrefetch执行该操作的方法,但是我没有找到与SQL Server驱动程序等效的任何东西。
OracleConnection
setDefaultRowPrefetch
有没有一种方法可以使用SQL Server JDBC驱动程序为连接定义默认的行预取?
设置行提取大小的常用方法是:
java.sql.Connection
OracleConnection.setDefaultRowPrefetch
java.sql.Statement.setFetchSize(int)
ResultSets
Statement
PreparedStatement
CallableStatement
java.sql.ResultSet.setFetchSize(int)
ResultSet
MS SQL Server JDBC驱动程序不支持以下任何一种方式:
默认情况下,除非您在JDBC驱动程序中指定了游标类型,否则它将从数据库检索 所有 行。MSSQL驱动程序不能使用常规方法直接控制获取大小。
解决方案:
SQLServerStatement
setMaxRows(int)
Connection
selectMethod=cursor
com.microsoft.sqlserver.jdbc.SQLServerResultSet.TYPE_SS_SERVER_CURSOR_FORWARD_ONLY
setFetchSize
SET ROWCOUNT
SELECT TOP N