public HashMap getDictSql(String sql) {
   if (sql == null) {
     Debug.getAppErrLogger().warn("字典Sql为空");
     return null;
   }
   sql = sql.trim();
   if (hashCache.containsKey(sql)) {
     //         Debug.getAppErrLogger().debug("缓存中取字典:[" + sql + "]");
     return (HashMap) hashCache.get(sql);
   } else {
     //         Debug.getAppErrLogger().debug("新缓存字典:[" + sql + "]");
     loadNewDict(sql);
     return (HashMap) hashCache.get(sql);
   }
 }
  private void loadNewDict(String sql) {
    Debug.getAppErrLogger().debug("------------------------------------------------load:" + sql);

    HashMap htemp = new HashMap();
    Statement state = null;
    ResultSet rs_dic = null;
    try {
      if (conn != null) {
        conn.close();
        conn = null;
      }
      getConnection();
      state = conn.createStatement();
      rs_dic = state.executeQuery(sql);
      while (rs_dic.next()) {
        String text = rs_dic.getString(1);
        String value = rs_dic.getString(2);
        if (null != text && value != null) {
          htemp.put(text.trim(), value.trim());
        }
      }
      hashCache.put(sql, htemp);
      rs_dic.close();
      state.close();
    } catch (Exception e) {
      e.printStackTrace();
      Debug.getAppErrLogger().error(e);
    } finally {
      try {
        if (rs_dic != null) {
          rs_dic.close();
          rs_dic = null;
        }
        if (state != null) {
          state.close();
          state = null;
        }
      } catch (Exception e) {
        Debug.getAppErrLogger().error("Inside DictCachService::loadNewDict() - 关闭时出错!\n" + e);
      }
      close();
    }
  }