您好我是JDBC概念的新手,根据我的知识,在两个方向上移动结果集指针结果集需要设置可滚动
但由于结果集未设置为可滚动绝对功能,因此不应允许指针向后移动
但下面的代码工作正常
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from studentinfo");
int counter=0;
while(rs.next())
{
System.out.println(rs.getInt(1)+" "+rs.getString(2));
int row = rs.getRow();
if(row==5)
{
if(counter==0)
{
counter++;
rs.absolute(4);
System.out.println(rs.getInt(1)+" "+rs.getString(2));
}
}
}
con.close();
在此代码中,如果当前行等于第5行,我将指针移回第4行
正如您所看到的那样,我没有在createStatement()方法中给出任何参数,即默认,它应该是**不可滚动的**因此上面的代码不应该获取结果,但是工作得很好怎么样?
答案 0 :(得分:2)
默认
ResultSet
类型为TYPE_FORWARD_ONLY
。方法
DatabaseMetaData.supportsResultSetType
如果是,则返回true
驱动程序支持指定的类型,否则为false
。如果驱动程序不支持提供给方法
createStatement
的类型,prepareStatement
或prepareCall
,它会在SQLWarning
上生成Connection
正在创建语句的ResultSet
对象。执行语句时 驱动程序返回一个ResultSet
对象,该对象的类型最接近 要求的类型。应用程序可以通过找出ResultSet.getType
对象的类型 调用方法TYPE FORWARD_ONLY
。
检查JDBC驱动程序是否支持SQLWarning
。
检查您是否收到ResultSet
。
检查您的"id"
类型。