rs.getMetaData().getColumnName(i)在mysql上有别名列

epe*_*leg 2 java mysql metadata

当我有一个类似的查询结果:

select col as newName from table;
Run Code Online (Sandbox Code Playgroud)

然后我做(在java中):

rs.getMetaData().getColumnName(i)
Run Code Online (Sandbox Code Playgroud)

它返回列的名称而不是"newName"...

但是,如果我这样做

select concat(col,'') as newName from table;
Run Code Online (Sandbox Code Playgroud)

它返回预期的"newName"

有没有办法获得"newName"而不会搞乱sql查询?

这都是mysql,java,tomcat 6.

Boh*_*ian 5

请尝试使用getColumnLabel():

rs.getMetaData().getColumnLabel(i);
Run Code Online (Sandbox Code Playgroud)

仅供参考,我做了一个测试并rs.getMetaData().getColumnName(i)为我工作 - 即它给了我别名,而不是列名,但也许您使用的是旧版本的JDBC驱动程序和/或mysql数据库.