【发布时间】: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 的代码。 getColumnLabel 和 getColumnName 这两种方法是相同的。
abzycdxw65,在他们的github account 上提出了同样的问题。关门了。
有没有办法得到以下输出:
Student code--std_code
【问题讨论】:
标签: java sql-server