問題:
在分頁時,常因爲是新手會出現如下的問題:
com.microsoft.sqlserver.jdbc.SQLServerException: 只進結果集不支持請求的操作。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.throwNotScrollable(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.verifyResultSetIsScrollable(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.absolute(Unknown Source)
at org.apache.tomcat.dbcp.dbcp.DelegatingResultSet.absolute(DelegatingResultSet.java:335)
at com.rsglxt.db.ManageDB.getImpList(ManageDB.java:78)
at com.rsglxt.manage.ImpleeyListAction.getImpList(ImpleeyListAction.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:517)
at ognl.OgnlRuntime.getMethodValue(OgnlRuntime.java:931)
at ognl.ObjectPropertyAccessor.getPossibleProperty(ObjectPropertyAccessor.java:53)
at ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:121)
at com.opensymphony.xwork2.util.OgnlValueStack$ObjectAccessor.getProperty(OgnlValueStack.java:58)
at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1643)
at com.opensymphony.xwork2.util.CompoundRootAccessor.getProperty(CompoundRootAccessor.java:101)
at ognl.OgnlRuntime.getProperty(OgnlRuntime.java:1643)
at ognl.ASTProperty.getValueBody(ASTProperty.java:92)
at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:170)
at ognl.SimpleNode.getValue(SimpleNode.java:210)
at ognl.Ognl.getValue(Ognl.java:333)
at ognl.Ognl.getValue(Ognl.java:310)
…………
…………
…………
…………
解決方法:
因爲在創建stmt容器的時候,沒有加上如下紅色的參數:
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
其意爲創建一個滾動的結果集,相信大家看參數的英文意思,也能明白啦,scroll=滾動
如果沒有加上這個參數,那麼這個結果集就只能迭代一次,就不能rs.XXXX調用ResultSet下的某些方法了
這也是程序中拋出的異常:說結果集只進的原因了!!!