mysql结果集ResultSet列别名

时间:2022-04-26 11:50:50

今天碰到一个mysql结果集别名显示异常的问题

ResultSetMetaData -getColumnName-getColumnLabel的区别

简单的讲就是
对于查询语句select cd.id client_data_id from dual来说
ResultSetMetaData .getColumnName(i) 显示列名id
ResultSetMetaData .getColumnLabel(i) 显示列别名client_data_id

代码片段如下:

查询语句:
” select ” +
” dp.product_sk product_sk, ” +
” dl.location_sk location_sk, ” +
” pm.id model_id, ” +
” dd.date_sk date_sk, ” +
” cd.device_identifier device_identifier, ” +
” cd.id client_data_id, ” +
” hour(cd.date) hour_sk, ” +
” cd.user_identifier user_identifier ” +
” from ” +
” balabala “;

结果集转换过程:
while(rs.next()){
ArrayList tmp = new ArrayList<>();
ResultSetMetaData metaData = rs.getMetaData();
for(int i = 1; i <= metaData.getColumnCount(); i++){
//tmp.add(metaData.getColumnName(i) + “:” +rs.getString(i));
tmp.add(metaData.getColumnLabel(i) + “:” +rs.getString(i));
}
Collections.sort(tmp);
list.add(tmp.toString());
}