java - 从 jdbc 的元数据对象获取完整的列名

标签 java jdbc

我正在处理一个结果集,其中返回的列数各不相同,因此我需要知道存在哪些列。我发现我可以像这样提取返回的列名称:

ResultSetMetaData meta = rs.getMetaData();
ArrayList<String> columns = new ArrayList<String>();
for (int i = 0; i < meta.getColumnCount(); i++) {
    columns.add(meta.getColumnLabel(i+1));
}

然而,这并没有给我 SQL 中定义的完整列名。即。

select events.id, events.name from events;

显示为“id, name”而不是“events.id, events.name”,这在连接表并希望返回的列名称有所不同时非常糟糕。

最佳答案

答案是:您无法从 select 语句中检索表别名。但是,您可以检索列的基础表的名称,因此您应该能够使用 ResultSetMetaData 中的 getTable(int) 来检索此名称,因为您没有使用表别名,而是使用实际的表。

关于java - 从 jdbc 的元数据对象获取完整的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8521120/

相关文章:

java - 如何自动找到网络IP地址并连接到它?

java - 如何将 JDBC 语句与 EntityManager 结合起来?

java - 是否可以在Java中构造一个Either,允许flatMap返回不同的Left值?

java - java中自动转换是如何工作的?

java - 坐标变换

java - 执行查询未定义

java - 如何在 Oracle 11 中使用 JDBC 4 驱动程序?

java - 就序列化而言,Spring session 范围的 bean( Controller )和对服务的引用

与 MS Access 的 java 连接

android - MySQLNonTransientConnectionException : Could not create connection to database server