【问题标题】:Unable to get column name and column lable in sql server result set meta data无法在 sql server 结果集元数据中获取列名和列标签
【发布时间】:2020-09-01 14:50:51
【问题描述】:

任何人都可以通过连接到 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 的代码。 getColumnLabelgetColumnName 这两种方法是相同的。

abzycdxw65,在他们的github account 上提出了同样的问题。关门了。

有没有办法得到以下输出:

Student code--std_code

【问题讨论】:

    标签: java sql-server


    【解决方案1】:

    如果我收到您的问题,您可以尝试以下方法来检索列名

    select name from sys.columns
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 2014-09-10
      • 2015-10-03
      • 2018-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多