gpt4 book ai didi

java - ResultSetMeta 中的 getColumnName 方法无法返回正确的列名(jdbc)

转载 作者:行者123 更新时间:2023-12-01 00:19:35 24 4
gpt4 key购买 nike

我想获取列的表标签,如在 mysql 中显示的字符串。像这样 enter image description here但是,当我使用 getColumnName 时,结果发现返回的字符串和下面的字符串之间存在一些差异。像这样: enter image description here但是当我调试时它在eclipse的变量资源管理器中是正确的,就像这样: enter image description here我找不到其他获取专栏的方法。返回的字符串好像是originalColumnName,但是如何获取ColumnName呢?有人知道怎么解决吗?

这是我的代码,我知道代码中还有其他问题。请假设所有列的类型都是字符串。

      public ResultSet DisplayShowTables() throws SQLException
{
ResultSet Res = Sta.executeQuery("DESC Code2Name");
ResultSetMetaData ResMeta = Res.getMetaData();
String [] ColumnName = new String [ResMeta.getColumnCount()];
int MetaCount = ResMeta.getColumnCount();
for (int i = 0; i < MetaCount; i++) {
ColumnName [i] = ResMeta.getColumnName(i+1);
}
String LeftAlignFormat = "|";
String Separator = "+";
for (int i = 0; i < MetaCount; i++) {
LeftAlignFormat = LeftAlignFormat.concat(" %-20s |");
Separator =Separator.concat("----------------------+");
}
LeftAlignFormat = LeftAlignFormat.concat("%n");
Separator = Separator.concat("%n");
if(Res.isBeforeFirst()){
System.out.format(Separator);
System.out.format(LeftAlignFormat, ColumnName);
System.out.format(Separator);
}
while (Res.next()) {
Vector<String> RowData = new Vector<String>();
for (int i = 0; i < MetaCount; i++) {
RowData.add(Res.getString(i+1).toString());
}
System.out.format(LeftAlignFormat, RowData);
}
if(Res.isAfterLast())
System.out.format(Separator);
return Res;
}

最佳答案

看起来 DESC 只是查询带有列别名的信息模式的快捷方式。

可以使用 ResultSetMetadata.getColumnLabel(int) 检索列别名.

JDBC 将列标签定义为:

Gets the designated column's suggested title for use in printouts and displays. The suggested title is usually specified by the SQL AS clause. If a SQL AS is not specified, the value returned from getColumnLabel will be the same as the value returned by the getColumnName method.

这也意味着在几乎所有情况下,您都应该使用 getColumnLabel 而不是 getColumnName

关于java - ResultSetMeta 中的 getColumnName 方法无法返回正确的列名(jdbc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36038258/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com