我正在查看可能会更改的视图中的数据.我需要知道在我做一个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.
有什么关于你提出的解决方案,让你认为这是不正确的吗?对我来说似乎很简单