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