如何检查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;

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

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

回答:

通用JDBC API并不是简单的方法(至少我不知道,或者找不到……我在自己的工具集中有完全相同的代码。)

(您的代码不完整):

ResultSetMetaData meta = crs.getMetaData();

int numCol = meta.getColumnCount();

for (int i = 1; i < numCol+1; i++)

{

if(meta.getColumnName(i).equals("name"))

{return true;}

}

return false;

话虽这么说,如果您使用专有的,特定于数据库的API和/或SQL查询,那么我敢肯定,您会找到更优雅的方法来做同样的事情…但是您必须为每个数据库编写自定义代码需要处理。如果我是我,我会坚持使用JDBC

API。

您提出的解决方案是否存在某些使您认为不正确的东西?对我来说似乎很简单…

以上是 如何检查CachedRowSet中是否存在列名? 的全部内容, 来源链接: utcz.com/qa/404233.html

回到顶部