如何在没有 ResultSet 的情况下获得 ResultSetMetaData 的等效项
我需要将一堆列名解析为列索引(以便使用一些不错的 ResultSetMetaData 方法)。但是,我知道如何获取 ResultSetMetaData
对象的唯一方法是在某些 ResultSet
上调用 getMetaData()
。
我遇到的问题是,获取 ResultSet 会占用我脑海中不必要的资源 - 我实际上不需要查询表中的数据,我只想要有关表的一些信息。
有谁知道有什么方法可以获取 ResultSetMetaData
对象,而无需先获取 ResultSet
(来自潜在的巨大表)?
I need to resolve a bunch of column names to column indexes (so as to use some of the nice ResultSetMetaData
methods). However, the only way that I know how to get a ResultSetMetaData
object is by calling getMetaData()
on some ResultSet
.
The problem I have with that is that grabbing a ResultSet takes up uneccesary resources in my mind - I don't really need to query the data in the table, I just want some information about the table.
Does anyone know of any way to get a ResultSetMetaData
object without getting a ResultSet
(from a potentially huge table) first?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
也许您可以使用
它为每个表列返回一行。
在这种情况下,您将使用返回的
ResultSet
本身,而不是它的ResultSetMetaData
。这种方法的一个优点是,它不会干扰数据库锁定和事务。
Maybe you could use
It returns one row for each table column.
In this case you'd use the returned
ResultSet
itself, not itsResultSetMetaData
.One advantage of this approach is, that it doesn't interfere with database locking and transactions.
假设您正在执行
select * from mytable
,您可以只添加一个where
子句来确保不会返回任何记录并且 ResultSet 将为空?这样,您仍然只是获取您感兴趣的表的元数据,而不是整个数据库。
Assuming you're doing a
select * from mytable
you could just add awhere
clause that ensures no records will be returned and the ResultSet will be empty?That way you are still just getting the metadata for the table you are interested in instead of the entire database.
另一种解决方案
然后查询没有得到任何数据。
Another solution
Then the query dont get any data.