设为首页 加入收藏

TOP

封装LDAP 增删改查 方法(二)
2014-11-24 02:58:05 来源: 作者: 【 】 浏览:1
Tags:封装 LDAP 删改 方法
@创建人 PengBo
* @创建时间 2013-7-7 下午6:55:38
*/
public List findByFilter( final T t) {
return ldapTemplate.search(buildDn(t), getFilter(t).encode(), getContextMapper(t));

}

/**
* 根据实体类型查找所有实体
* @param t
* @return 返回实体集合
* @创建人 PengBo
* @创建时间 2013-7-7 下午6:56:13
*/
public List findAll(final T t) {
return ldapTemplate.search(buildDn(t), getObjectclass(t).encode(), getContextMapper(t));

}
/**
* 根据实体的分页属性进行查获早分页信息
* @param basePage
* @return
* @创建人 PengBo
* @创建时间 2013-7-7 下午6:57:00
*/
public Page getPages(Page basePage,T t){
int totalRow = findByFilter(t).size();
basePage.setContent(getAllPageMap(null,t,(basePage.getPageSize()*basePage.getPage())));
basePage.setTotalRow(totalRow);
basePage.setTotalPage((totalRow+basePage.getPageSize()-1)/basePage.getPageSize());
return basePage;
}
/**
* 根据传入记录数查处所需要的信息
* @param cookie
* @param t
* @param pageSize
* @return
* @创建人 PengBo
* @创建时间 2013-7-10 上午9:23:46
*/
private List getAllPageMap(PagedResultsCookie cookie,T t,Integer pageSize) {
PagedResultsDirContextProcessor control = new PagedResultsDirContextProcessor (pageSize, cookie);
SearchControls searchControls = new SearchControls();
searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
List mList = ldapTemplate.search(buildDn(t), getFilter(t).encode(),searchControls, getContextMapper(t), control);
return mList;
}

/**
* 查找全部信息所需要的filter检索方法
* @param map
* @return
* @创建人 PengBo
* @创建时间 2013-7-7 下午6:59:38
*/
private AndFilter getObjectclass(T t){
Map map=t.getMap();
AndFilter filter = new AndFilter();
for(String mkey:map.keySet()){ //根据实体只获得他对应的objectclass的值
if ("objectclass".equals(mkey)) {
filter.and(new EqualsFilter(mkey, (String) map.get(mkey)));
}
}
return filter;
}

/**
* 根据条件模糊查找的条件方法
* @param t
* @return
* @创建人 PengBo
* @创建时间 2013-7-7 下午7:00:10
*/
private AndFilter getFilter(T t) {
AndFilter filter = new AndFilter();
Map map=t.getMap();
for(String mkey:map.keySet()){
if ("objectclass".equals(mkey)) {
filter.and(new EqualsFilter(mkey, (String) map.get(mkey)));
}
if(StringUtils.isNotBlank(map.get(mkey)) && !"objectclass".equals(mkey))
filter.and(new WhitespaceWildcardsFilter(mkey, (String) map.get(mkey)));
}
return filter;
}
/**
* 根据条件精确查找的条件方法
* @param t
* @return
* @创建人 PengBo
* @创建时间 2013-7-8 下午3:10:43
*/
private AndFilter getEqualFilter(T t) {
AndFilter filter = new AndFilter();
Map map=t.getMap();
for(String mkey:map.keySet()){
if ("objectclass".equals(mkey)) {
filter.and(new EqualsFilter(mkey, (String) map.get(mkey)));
}
if(StringUtils.isNotBlank(map.get(mkey)) && !"objectc
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇LDAP 与 MySQL 连用 的JPA事物问题 下一篇轻松了解LDAP的结构概念

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: