如何判断JDBC驱动程序是否为TYPE_FORWARD_ONLY
?在我的程序中,用户为数据库配置连接参数,他可以在类路径中使用任何JDBC驱动程序。我想在执行任何语句之前知道驱动程序是否为TYPE_FORWARD_ONLY
。这可能吗?
答案 0 :(得分:4)
DatabaseMetaData有一个方法supportsResultSetType(int type),可用于检查ResultSet是否支持TYPE_FORWARD_ONLY
。
答案 1 :(得分:1)
按querying the type结果集。例如:
Statement stmt = con.createStatement(
ResultSet.TYPE_FORWARD_ONLY,
ResultSet.CONCUR_UPDATABLE
);
ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");
System.out.println(
"Is Type Forward Only: " +
(rs.getType() == ResultSet.TYPE_FORWARD_ONLY)
);
答案 2 :(得分:0)
有些驱动程序不支持滚动吗?你举个例子吗?当您尝试创建一个SCROLL_SENSITIVE的Statement / ResultSet然后询问Type时,这样的驱动程序会返回什么?像这样:
Connection con = ...;
Statement statement = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ...);
System.out.println(statement.getResultSetType());
答案 3 :(得分:0)
您可以从驱动程序获取DriverPropertyInfo,但我找不到描述驱动程序必须返回的特定jdbc规范。 This reference可能会有更多。