java - 无法在 sql server 结果集元数据中获取列名和列标签
问题描述
任何人都可以通过连接到 sqlserver 数据库来帮助我使用 ResultSetMetaData 获取实际的列名及其别名。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
class MysqlCon {
public static void main(String args[]) {
Connection con = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=alcoa", "sa", "test");
Statement stmt = con.createStatement();
String query = "SELECT std_code as \"Student code\" from Student ";
ResultSet rs = stmt.executeQuery(query);
ResultSetMetaData rsm =rs.getMetaData();
for (int i = 1; i <= rsm.getColumnCount(); i++) {
System.out.println(rsm.getColumnLabel(i) + "--" + rsm.getColumnName(i));
}
} catch (Exception e) {
System.out.println(e);
} finally {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
输出
Student code--Student code
上面的代码在 mysql 和 oracle 等其他数据库中按预期工作。
我检查了SQLServerResultSetMetaData的代码。getColumnLabel和getColumnName两种方法是相同的。
abzycdxw65在他们的github 帐户上提出了同样的问题。它是关闭的。
有没有办法获得以下输出:
Student code--std_code
解决方案
如果我收到您的问题,您可以尝试以下方法来检索列名
select name from sys.columns
推荐阅读
- git - 在 Visual Studio Code 中设置差异工具
- javascript - react内三元的语法
- angular - 从角度 5 和材料设计 2 中的另一个事件触发事件
- java - 具有 180 个 POM 的 Maven 项目——这是代码异味吗?
- datepicker - 将日期选择器转换为日期时间选择器
- adal - 令牌中的acquireTokenAsync 缺少deviceId
- ruby-on-rails - 如何在 Localhost 中查看 ROR App
- c# - CS0246 类型或命名空间“Newtonsoft”未找到
- node-red - 如何使节点红色的http重定向?
- python - 如果 CSS 或 XPATH 选择器不起作用,如何使用 Python Scrapy?