【问题标题】:Test ResultSet to see if it contains a column label测试 ResultSet 看它是否包含列标签
【发布时间】:2011-05-07 18:31:36
【问题描述】:

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

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

BigDecimal bid;
    try {
        bid = rs.getBigDecimal("bid");
    }
    catch(final SQLException e) {
        bid = null;
    }

但这对我来说似乎很不整洁,如果您想以这种方式测试多行,这将是不可读的。

【问题讨论】:

标签: java jdbc resultset


【解决方案1】:

您可以使用可以从结果集中获取的元数据。使用rs.getMetaData(),然后在元数据上有getColumnName()getColumnLabel()方法。

【讨论】:

    【解决方案2】:

    你可以使用ResultSetMetaData(见我的相关帖子here)。这是我希望你使用的。您所做的是从 ResultSet 中检索 ResultSetMetaData,遍历它并查看 ResultSetMetaData.getColumnName(int index) 是否返回您一直在寻找的列名。

    或者,您可以使用 ResultSet.findColumn() 在 ResultSet 中查找列。

    【讨论】:

      【解决方案3】:

      为什么?您的查询将已经确定返回哪些列。但是 ResultSetMetadata 会告诉您存在哪些列。

      【讨论】:

        猜你喜欢
        • 2012-03-26
        • 1970-01-01
        • 2013-05-11
        • 2017-05-05
        • 1970-01-01
        • 2013-12-09
        • 1970-01-01
        • 2019-06-13
        • 1970-01-01
        相关资源
        最近更新 更多