`
yjandx3543
  • 浏览: 49706 次
  • 性别: Icon_minigender_1
  • 来自: 隐居山林
社区版块
存档分类
最新评论

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会将所有表名和字段名变为大写......
分享到:
评论

相关推荐

    Spring JdbcTemplate调用Oracle存储过程实现CRUD

    使用 Spring JdbcTemplate 调用 Oracle 存储过程实现 CRUD 在本文中,我们将讨论如何使用 Spring JdbcTemplate 调用 Oracle 存储过程来实现 CRUD(Create、Read、Update、Delete)操作。我们将首先编写 Oracle 存储...

    java调用oracle sqlserver存储过程共用方法

    ResultSetMetaData meta = rs.getMetaData(); while (rs.next()) { HashMap, String&gt; hash = new HashMap(); for (int k = 1; k (); k++) { String temp = StringUtils.trim((rs.getString(meta.getColumnName...

    Java调用oracle存储过程通过游标返回临时表

    由于游标返回的是临时表数据,所以需要逐行处理并存储在适当的数据结构中,如ArrayList或HashMap。 6. **关闭资源**:在处理完游标后,记得关闭`ResultSet`、`CallableStatement`和`Connection`,以释放数据库资源...

    tomcat、jboss 连接池配置

    &lt;driver&gt;oracle-driver &lt;user-name&gt;dw&lt;/user-name&gt; &lt;password&gt;dw &lt;min-pool-size&gt;10&lt;/min-pool-size&gt; &lt;max-pool-size&gt;100&lt;/max-pool-size&gt; &lt;prefill&gt;true &lt;use-strict-min&gt;false&lt;/use-strict-min&gt; ...

    java题目

    Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。它的设计目标是具有简单性、面向对象、健壮性、安全性、可移植性、高性能和多线程等特性。Java在各种领域都有...

    server连接

    Map, Object&gt; map = new HashMap(); for (int i = 1; i ; i++) { String skey = rsmd.getColumnName(i); map.put(skey, rs.getString(i)); } list.add(map); } ``` ### 4. 关闭资源 在完成所有操作后,应关闭...

    Java数据库通用操作类.doc

    不过,实际使用时,还需要根据具体的数据库类型(如MySQL、Oracle、SQL Server等)和业务需求进行适当的调整和扩展。同时,为了确保数据安全,应考虑使用连接池管理器,如C3P0或HikariCP,并使用PreparedStatement来...

    jsp页面常用的查询及显示方法分析

    OracleCachedRowSet是Oracle对RowSet接口的实现,即使在关闭Connection后,仍能保持数据的有效性。 总结: 在JSP页面中显示数据库查询结果,可以采用多种方法。方法一虽然简单,但不够灵活;方法二通过将ResultSet...

    详解java调用存储过程并封装成map

    cstmt.registerOutParameter(3, oracle.jdbc.OracleTypes.CURSOR); cstmt.execute(); rs = (ResultSet) cstmt.getObject(3); ResultSetMetaData rsm = rs.getMetaData(); Map, Object&gt; map = null; int col = ...

    疯狂JAVA讲义

    7.7 HashSet和HashMap的性能选项 282 7.8 操作集合的工具类:Collections 283 7.8.1 排序操作 283 7.8.2 查找,替换操作 287 7.8.3 同步控制 288 7.8.4 设置不可变集合 288 7.9 烦琐的接口:Enumeration 289 ...

Global site tag (gtag.js) - Google Analytics