HashMap--ResultSetMetaData--Oracle--乱记

一次,用到了LinkedList<HashMap<String, String>> retList=new LinkedList<HashMap<String,String>>();

使用背景:

/**
* 查询记录封装在list中
* @param conn
* @param sql
* @return
* @throws SQLException
*/
public static LinkedList<HashMap<String, String>> getListRecords(Connection conn, String sql) throws SQLException;



HashMap中存放的是:

ResultSetMetaData rsmd = rs.getMetaData() ;

String[] columns = getColumnName(rsmd);

while (rs.next())
{
recordMap = new HashMap<String, String>();
for (int i = 0; i < columns.length; i++)
{
recordMap.put(columns[i], rs.getString(columns[i]));
}
retList.add(recordMap);
}


在取出HashMap后,总是get不到HashMap值,字段名是数据库中搜出的列名busi_code......

HashMap.get("busi_code")=NULL





相关JDK: 方法无字段大小写的规定

java.sql
Interface ResultSetMetaData
getColumnName
String getColumnName(int column)
throws SQLExceptionGet the designated column's name.

Parameters:
column - the first column is 1, the second is 2, ...
Returns:
column name
Throws:
SQLException - if a database access error occurs


--------------------------------------------------------------------------------




SQL语句:

select busi_code from tb_experience_interface where busi_flag='1';





经过遍历HashMap中的值:

for(HashMap<String, String> record:retList)
{
for (Map.Entry entry : record.entrySet()) {
    Object key = entry.getKey( );
    Object value = entry.getValue();
    System.out.print("KEY:" + key + "\t");
   System.out.println("VALUE:" + value);
}

// String busiCode=record.get("BUSI_CODE");

}


最后发现HashMap中存的值:KEY:BUSI_CODE VALUE:7450



费尽周折,发现原因尽然是Oracle会将所有表名和字段名变为大写......
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值