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