gpt4 book ai didi

java - 如何检查 CachedRowSet 中是否存在列名?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:10:01 25 4
gpt4 key购买 nike

我正在从可能发生变化的 View 中查询数据。在执行 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。

您提出的解决方案中有什么地方让您认为它不正确吗?这对我来说似乎很简单。

关于java - 如何检查 CachedRowSet 中是否存在列名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/462534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com