0

我正在做一个项目,我必须根据bank_name连接特定的数据库。我正在使用java,struts2,hibernate。例如:

{'sbi': 
   {'host':'111.111.15.45','port':3306,'username':'xxxx','password':'xxxx','database':'sbidb'}

这里sbi是一个银行名称,它是一个,然后作为一个值,还有另一个映射。所以我想根据bank_name(例如:'sbi')检索所有值,例如主机、端口、db。如何做到这一点?

4

3 回答 3

1

这很简单。

你的地图是这样的:

 Map<String, Map<String, String>> map = new HashMap<String, Map<String, String>>();
 .....

现在您可以从内部映射中检索键值对,如下所示:

  Map<String,String> sbiMap = map.get("sbi");
  Set<String> keys = sbiMap.keySet();
  for(String key: keys){
    System.out.println("key="+key+" value = " + sbiMap.get(key));
  }

这将打印映射中的所有内部键和相应的值sbi

于 2012-11-02T05:29:27.457 回答
0

你应该有一个Map<String,Map<String,String>>. 要获取内部地图的键,请使用地图的keySet()功能。前任:

Map<String,Map<String,String>> X;
Set<String> sbikeys = X.get('sbi').keySet();
于 2012-11-02T05:30:09.437 回答
0

您可以使用以下数据结构来实现这一点

Map<String, Map<String,String> bankdetails =  new HashMap<String, Map<String,String> ();

放置 sbi 的详细信息,

首先填充 sbi 的具体细节

HashMap<String, String> details =  new HashMap<String,String>();

   details.put("host","XXXX);

   details.put("port", "101111");

  ......

然后使用将sbi的详细信息如下

bankdetails.put(sbi ,details);
于 2012-11-02T05:37:08.957 回答