Statement的一个很怪很怪的问题,请高手过来看看~
我用的是oracle9i数据库,Weblogic服务器,开发工具是Eclipse3.1
有一个表t_1有一个字段 rowno
insert into t_1 values(1);
insert into t_1 values(2);
insert into t_1 values(3);
.
.
.
insert into t_1 values(6000);
写入6000条记录
然后用下面的语句读出记录:
Statement stmt = null;
ResultSet rs =null;
stmt = this.conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery("select * from t_1");
while(rs.next()){
System.out.println(rs.getRow() + " " + rs.getString(1));
}
您会发现第2049条记录读出来的是数据库中第一条记录的值。第2048和2050读出来的值确都是正常的,这个问题我试个多种方法都没有解决!
不知道有没有人碰到过同样的问题,是怎么样解决的。
另外说明,如果把
stmt = this.conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
这句换成
stmt = this.conn.createStatement();
将没有问题。