我正在尝试this教程中的这个界面的方法:
我走了:
DatabaseMetaData dm = con.getMetaData();
System.err.println(dm.supportsResultSetType(ResultSet.TYPE_SCROLL_SENSITIVE));
我知道它支持TYPE_SCROLL_SENSITIVE
类型。因为我正在使用它,它的工作原理。
但是上面报告的方法返回false。你有没有尝试过使用这种方法?如果是,它是否正常工作?提前致谢。
PS:其他两种类型的ResultSet(TYPE_SCROLL_INSENSITIVE
和TYPE_FORWARD_ONLY
)也是如此。
考虑到TYPE_FORWARD_ONLY
是默认类型,我在所有三种情况下得到false
都有点奇怪。
更新:我正在使用JDBC-Mysql驱动程序;
答案 0 :(得分:0)
MySQL Connector / J 5.1.21中的实现是:
public boolean supportsResultSetType(int type) throws SQLException {
return (type == ResultSet.TYPE_SCROLL_INSENSITIVE);
}
然而,快速查看其余的实现表明MySQL也支持其他类型。
答案 1 :(得分:0)
假设你的意思是Connector / J驱动程序(MySQL有多个JDBC驱动程序),来自MySQL Connector/J JDBC implementation notes:
由于TYPE_SCROLL_SENSITIVE
,TYPE_SCROLL_INSENSITIVE
和TYPE_FORWARD_ONLY
通常表示游标类型,因此驱动程序甚至不会尝试模拟它们的语句可以解释为什么supportsResultSetType(...)
会返回所有值都为FALSE。使用将整个结果集保存在内存中的默认行为,仅向前或滚动模式将无关紧要。