相关疑难解决方法(0)

如何确定ResultSet中是否存在列名?

由于ResultSet包含从动态SQL返回的数据,是否有任何方法可以确定ResultSet是否包含特定的列名?例如,如果我运行rs.getString("Column_ABC");但Column_ABC确实不存在,它将抛出异常.如何测试ResultSet是否可以从名为"Column_ABC"的列中获取数据?

java jdbc resultset

63
推荐指数
3
解决办法
5万
查看次数

如何检查CachedRowSet中是否存在列名?

我正在查询可能会发生变化的视图中的数据.在我做之前我需要知道列是否存在crs.get******().我发现我可以查询这样的元数据,以便在我从中请求数据之前查看列是否存在.

ResultSetMetaData meta = crs.getMetaData();
int numCol = meta.getColumnCount();

for (int i = 1; i < numCol+1; i++) 
    if(meta.getColumnName(i).equals("name"))
        return true;
Run Code Online (Sandbox Code Playgroud)

有没有更简单的方法来检查列是否存在?

编辑:它必须是数据库不可知的.这就是我引用CachedRowSet而不是数据库的原因.

java metadata jdbc cachedrowset

9
推荐指数
2
解决办法
2万
查看次数

测试 ResultSet 以查看它是否包含列标签

是否可以检查 ResultSet 以查看它是否包含当前行的列标签。我认为它由某种 Map 支持,因此提供 rs.contains("label") 方法不会那么昂贵,但我在 javadoc 中找不到。

我目前测试标签存在的方法是:

BigDecimal bid;
    try {
        bid = rs.getBigDecimal("bid");
    }
    catch(final SQLException e) {
        bid = null;
    }
Run Code Online (Sandbox Code Playgroud)

但这对我来说似乎不整洁,如果您想以这种方式测试多行,它将无法读取。

java jdbc resultset

2
推荐指数
1
解决办法
5155
查看次数

标签 统计

java ×3

jdbc ×3

resultset ×2

cachedrowset ×1

metadata ×1