我正在开发一个项目,我必须根据bank_name连接特定的数据库。我正在使用java,struts2,hibernate。 例如:
{'sbi':
{'host':'111.111.15.45','port':3306,'username':'xxxx','password':'xxxx','database':'sbidb'}
此处 sbi 是bank_name,它是键,然后作为值,还有另一个地图。所以我想根据bank_name检索所有值,例如host,port,db(例如:'sbi')。 怎么做到这一点?
答案 0 :(得分: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
地图中的所有内部键和相应值。
答案 1 :(得分:0)
你应该有Map<String,Map<String,String>>
。要获取内部地图的键,请使用地图的keySet()
功能。例如:
Map<String,Map<String,String>> X;
Set<String> sbikeys = X.get('sbi').keySet();
答案 2 :(得分: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);