【发布时间】:2018-01-11 23:41:11
【问题描述】:
根据我的 OCP 学习书,以下内容不会引发异常:
try(Connection conn = DriverManager.getConnection("jdbc:derby:zoo");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql)){
rs.absolute(0);
rs.next();
System.out.println(rs.getString(1));
}
你可以看到 conn.createStatement() 没有像ResultSet.TYPE_SCROLL_INSENSITIVE 这样的任何参数,所以结果集一次只能向前移动一行,对吧?然而他们说没有例外。那么这是 OCP 书中的错误还是我在这里遗漏了什么?
问候
【问题讨论】:
-
你检查过实际产生的结果集类型吗?如果方便,允许驱动程序“升级”结果集类型。此外,一些驱动程序实现是宽松的,允许的超出 JDBC 的要求,例如,一些驱动程序允许您将绝对值与只进结果集一起使用,只要行索引是当前或更高的。您还应该指定您使用的数据库和驱动程序+版本。
标签: java database jdbc resultset