查出来了3个用户,他们的键相同,但是每个用户存入table中的键是不一样的。按理来说是不会被覆盖的。请问怎么回事?
3个字段。(uid,ou,mail以这些作为键);public List<Hashtable<String,String>> findByCondition(String parentDN, String filter,Hashtable env){
try {
dirContext = new InitialLdapContext(env,null);//初始化连接信息
String[] listAtts = null;
List<Hashtable<String,String>> list = new ArrayList<Hashtable<String,String>>();
listAtts = new String[]{"uid","mail","ou"};//指出要查出的属性
Hashtable<String,String> table = new Hashtable<String, String>(11);
SearchControls control = new SearchControls(SearchControls.SUBTREE_SCOPE,0,0,null,true,true);
NamingEnumeration ne = dirContext.search("dc=example,dc=com","ou=研发部", control);//包含了要查的(上下文名称,条件,SearchControls)
while(ne.hasMore()){
SearchResult result = (SearchResult) ne.next();//得到节点。
String dn = result.getName();//得到上下文名称
// 拿到节点
Attributes attrs = dirContext.getAttributes(dn + ",dc=example,dc=com",listAtts);
String str = null;
String s = null;
for (int i = 0; i < listAtts.length; i++) {
String ss = listAtts[i];
Attribute attr = attrs.get(ss);
int j = attr.toString().indexOf(":");
str = attr.toString().substring(0, j);
s = attr.toString().substring(j+1);
table.put(str,s);
}
list.add(table);
}
return list;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
谢谢各位大侠来解决。
3个字段。(uid,ou,mail以这些作为键);public List<Hashtable<String,String>> findByCondition(String parentDN, String filter,Hashtable env){
try {
dirContext = new InitialLdapContext(env,null);//初始化连接信息
String[] listAtts = null;
List<Hashtable<String,String>> list = new ArrayList<Hashtable<String,String>>();
listAtts = new String[]{"uid","mail","ou"};//指出要查出的属性
Hashtable<String,String> table = new Hashtable<String, String>(11);
SearchControls control = new SearchControls(SearchControls.SUBTREE_SCOPE,0,0,null,true,true);
NamingEnumeration ne = dirContext.search("dc=example,dc=com","ou=研发部", control);//包含了要查的(上下文名称,条件,SearchControls)
while(ne.hasMore()){
SearchResult result = (SearchResult) ne.next();//得到节点。
String dn = result.getName();//得到上下文名称
// 拿到节点
Attributes attrs = dirContext.getAttributes(dn + ",dc=example,dc=com",listAtts);
String str = null;
String s = null;
for (int i = 0; i < listAtts.length; i++) {
String ss = listAtts[i];
Attribute attr = attrs.get(ss);
int j = attr.toString().indexOf(":");
str = attr.toString().substring(0, j);
s = attr.toString().substring(j+1);
table.put(str,s);
}
list.add(table);
}
return list;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
谢谢各位大侠来解决。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货