使用hashmap中的JDBCTemplate从数据库中检索值

时间:2012-12-03 13:25:25

标签: jdbc hashmap jdbctemplate

我正在使用JDBC模板从Spring MVC中的数据库中获取数据。 我的疑问是:

SELECT count(A.MEETING_ID),ITEM_TBL.REG_EMAIL FROM ITEM_TBL,MEETINGS_TBL WHERE ITEM_TBL.MEETING_ID=MEETINGS_TBL.MEETING_ID 
GROUP BY ITEM_TBL.REG_EMAIL

这会返回如下行:

11 nishant@gmail.com
12 abhilasha@yahoo.com
13 shiwani@in.com

我想将这些值存储到Hash MAP中。能否帮助我如何使用JDBC TEMPLATE做到这一点? 谢谢

1 个答案:

答案 0 :(得分:1)

您需要ResultExtractor

您可以使用以下代码实现这一目标。

String sql = "SELECT count(A.MEETING_ID),ITEM_TBL.REG_EMAIL FROM ITEM_TBL,MEETINGS_TBL WHERE        ITEM_TBL.MEETING_ID=MEETINGS_TBL.MEETING_ID 
        GROUP BY ITEM_TBL.REG_EMAIL";

ResultExtractor mapExtractor = new ResultSetExtractor() {
   public Object extractData(ResultSet rs) throws SQLException {
      Map<String, String> mapOfKeys = new HashMap<String, String>();
      while (rs.next()) {
        String key = rs.getString("MEETING_ID");
        String obj = rs.getString("REG_EMAIL");
        /* set the business object from the resultset */
        mapOfKeys.put(key, obj);
      }
      return mapOfKeys;
   }
};

Map map = (HashMap) jdbcTemplate.query(sql.toString(), mapExtractor);