今天通过JDBC连SQL SERVER时需要知道表中总共列的数目,开始的时候是通过
state = dbcon.createStatement();
ResultSet rSet = state.executeQuery("SELECT count(*) FROM
TEST_SQL");
rSet.last();
int number = ResultSet.getRow()+1;
来实现的,但是出现了错误:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for
JDBC]Unsupported method: ResultSet.last
经网上搜寻发现只要在state初始化时加上参数
ResultSet.TYPE_SOROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE
或者
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY
就可以实现了。可是却发现实现的效率实在是太低,后来又打算用下面的方法去实现
ResultSet rSet = state.executeQuery("SELECT count(*) FROM
TEST_SQL");
number = rSet.getInt(1);
可是发现出现错误:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for
JDBC]Invalid operation for the current cursor position.
原因是返回的ResultSet对象的游标还在数据集的最上方,需要加一句:rs.next()!
这样就解决了!
这样也就求得了表中数据的条目,^________^