一次,用到了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(Create、Read、Update、Delete)操作。我们将首先编写 Oracle 存储...
ResultSetMetaData meta = rs.getMetaData(); while (rs.next()) { HashMap, String> hash = new HashMap(); for (int k = 1; k (); k++) { String temp = StringUtils.trim((rs.getString(meta.getColumnName...
由于游标返回的是临时表数据,所以需要逐行处理并存储在适当的数据结构中,如ArrayList或HashMap。 6. **关闭资源**:在处理完游标后,记得关闭`ResultSet`、`CallableStatement`和`Connection`,以释放数据库资源...
<driver>oracle-driver <user-name>dw</user-name> <password>dw <min-pool-size>10</min-pool-size> <max-pool-size>100</max-pool-size> <prefill>true <use-strict-min>false</use-strict-min> ...
Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。它的设计目标是具有简单性、面向对象、健壮性、安全性、可移植性、高性能和多线程等特性。Java在各种领域都有...
Map, Object> map = new HashMap(); for (int i = 1; i ; i++) { String skey = rsmd.getColumnName(i); map.put(skey, rs.getString(i)); } list.add(map); } ``` ### 4. 关闭资源 在完成所有操作后,应关闭...
不过,实际使用时,还需要根据具体的数据库类型(如MySQL、Oracle、SQL Server等)和业务需求进行适当的调整和扩展。同时,为了确保数据安全,应考虑使用连接池管理器,如C3P0或HikariCP,并使用PreparedStatement来...
OracleCachedRowSet是Oracle对RowSet接口的实现,即使在关闭Connection后,仍能保持数据的有效性。 总结: 在JSP页面中显示数据库查询结果,可以采用多种方法。方法一虽然简单,但不够灵活;方法二通过将ResultSet...
cstmt.registerOutParameter(3, oracle.jdbc.OracleTypes.CURSOR); cstmt.execute(); rs = (ResultSet) cstmt.getObject(3); ResultSetMetaData rsm = rs.getMetaData(); Map, Object> map = null; int col = ...
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 ...