当前位置: 首页 > 面试题库 >

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

彭开畅
2023-03-14
问题内容

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


问题答案:

使用ResultSetMetaData该类。

public static boolean hasColumn(ResultSet rs, String columnName) throws SQLException {
    ResultSetMetaData rsmd = rs.getMetaData();
    int columns = rsmd.getColumnCount();
    for (int x = 1; x <= columns; x++) {
        if (columnName.equals(rsmd.getColumnName(x))) {
            return true;
        }
    }
    return false;
}

我不明白的是为什么会需要此功能。正在执行的查询或存储过程应具有已知结果。查询的列应该是已知的。需要这样的功能可能表明某处存在设计问题。



 类似资料:
  • 问题内容: 我有一个需要用户输入密码的应用程序。 我想要做的是从控制台读取密码(如果操作系统支持unix)或显示JOptionPane并要求用户输入密码(如果操作系统支持图形界面(例如Windows))。 有人可能会争辩说,在上述两种情况下控制台始终可用,因此控制台输入就足够了。但是问题是,如果Java应用程序开始使用javaw.exe,则控制台不可用。因此,我需要一种方法来确定我是否可以做任何一

  • 问题内容: 在JMS中,很容易找出连接是否丢失,是否发生异常。但是,如何确定连接是否再次存在? 场景:我使用JMS与服务器通信。现在我的连接断开了(服务器已关闭),这导致了异常。到目前为止,一切都很好。如果服务器再次启动并重新建立连接,我怎么知道? 我看不到任何可以提供此类信息的侦听器。 问题答案: 啊…旧的异常处理/重新连接难题。 有些传输提供程序将为您自动重新连接您的应用程序,而另一些传输提供

  • 我编写了以下代码来检测目录是否存在。方法接受完全限定路径或相对路径。 注意:返回指定目录或文件名的完全限定路径。在我的例子中,这是。 这个代码已经运行了好几个月了。但它突然停止了工作。现在,当目录不存在时,中不会出现异常只返回一个空字符串。 我发布了一个类似的问题,有人建议我应该总是在路径的末尾追加。我试过了,以为我有一次例外,但现在没有例外。 我不知道与我通信的FTP服务器上的行为是否发生了变化

  • 问题内容: 遗留代码以这种方式执行此操作: …但是我发现它并不总是有效。调用该方法并获取后,一些代码会在表中更改以添加一些列,但是我得到了: 列ID在规范中出现了多次。 我在StackOverflow上发现了两个很有希望的SQL语句: 和 …但是不确定如何在C#/ .NET 1.1中实现 我是否需要使用ExecuteScalar并将返回的值转换为布尔值?或者是其他东西? 更新 将其更改为此并不能解

  • 问题内容: 我有一个Python字典,例如: 我想检查一个键是否在字典中。我很想知道以下两种情况中哪一种更为可取,为什么? 问题答案: if ‘name’ in mydict: 是首选的pythonic版本。不鼓励使用,并且在Python 3中已删除 此方法。

  • 问题内容: 我正在从可能更改的视图中查询数据。在执行操作之前,我需要知道该列是否存在。我发现可以查询这样的元数据,以便在从该列请求数据之前查看是否存在该列。 有没有一种更简单的检查列是否存在的方法? 编辑:它必须是数据库不可知的。这就是为什么我引用而不是数据库的原因。 问题答案: 通用JDBC API并不是简单的方法(至少我不知道,或者找不到……我在自己的工具集中有完全相同的代码。) (您的代码不