`
猫不吃的鱼
  • 浏览: 159198 次
  • 性别: Icon_minigender_1
  • 来自: 芜湖市
社区版块
存档分类
最新评论

ldap分页排序

    博客分类:
  • JAVA
阅读更多
1、com.sun.jndi.ldap.ctl.VirtualListViewControl vlv分页
需要 sun-jndi-ldapbp.jar

public static void pageAndSort(){
		Hashtable env = new Hashtable();
		env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
		env.put(Context.PROVIDER_URL, "ldap://10.16.15.36:389");
		env.put(Context.SECURITY_AUTHENTICATION, "simple");
		env.put(Context.SECURITY_PRINCIPAL, "uid=yuyong,ou=applications,o=peter.com.cn,o=yy");
		env.put(Context.SECURITY_CREDENTIALS, "java");
		LdapContext ctx = null;
		try {
			ctx = new InitialLdapContext(env, null);
                        //排序字段
			String sortkey="uid";
			int beforeCount=0;
			int afterCount=0;
			int nTargetOffset=2;
                        int nPageSize=10;
			VirtualListViewControl vctl = new VirtualListViewControl(nTargetOffset,beforeCount,afterCount,nPageSize,Control.CRITICAL);;
			ctx.setRequestControls(new Control[]{new SortControl(sortkey,Control.CRITICAL),vctl});
			String retAtt[]={"uid"};
			SearchControls constraints=new SearchControls();
			constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
			constraints.setReturningAttributes(retAtt);
			NamingEnumeration results=ctx.search("ou=People,o=peter.com.cn,o=yy", "(code=30003357)",constraints);
			while(results!=null&&results.hasMore()){
				SearchResult entry = (SearchResult)results.next();
				System.out.println(entry.getAttributes());
			}
			ctx.close();
		} catch (NamingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}


2、netscape ldap分页排序
需要下载 ldapsdk.jar

public static void pageAndSort2(){
		String HOST="10.16.15.36";
		int PORT = 389;
		int MIN_CONN_SIZE=1;
		int MAX_CONN_SIZE=5;
		String USER_ID="uid=yuyong,ou=applications,o=peter.com.cn,o=yy";
		String PASSWORD="java";
		ConnectionPool connPool;
		try{
			connPool=new ConnectionPool(MIN_CONN_SIZE,MAX_CONN_SIZE,HOST,PORT);
			LDAPConnection conn=connPool.getConnection();
			conn.authenticate(USER_ID, PASSWORD);
			String []attrs={"uid"};
			LDAPSearchResults res=conn.search("ou=People,o=peter.com.cn,o=yy", LDAPConnection.SCOPE_SUB, "code=30003357", attrs, false);
			LDAPCompareAttrNames compareAttrNames = new LDAPCompareAttrNames("uid",true);
			res.sort(compareAttrNames);
			while(res.hasMoreElements()){
				try{
					LDAPEntry entry=res.next();
					System.out.println(entry.getAttribute("uid").getStringValues().nextElement());
				}catch(Exception e){
					e.printStackTrace();
				}
			}
			connPool.close(conn); 
		}catch(Exception e){
			e.printStackTrace();
		}
		
	}

1
1
分享到:
评论
1 楼 Spring_g 2013-04-27  
这个不是不是开源的吧,我是用unboundid for java 操作openldap的,想实现对查询结果集的培训,

相关推荐

    LDAP rfc文档 中英文对照

    7. **控制协议**:RFC还定义了一些控制协议,例如Paged Results Control,用于分页检索大量结果,避免一次性加载过多数据导致性能问题。 8. **国际化与本地化**:LDAP支持Unicode字符集,允许存储和检索全球多种...

    RFC2255LDAP URL格式中文版

    - `<控制>`: 可选的LDAP控制,用于修改查询的行为,如排序、分页等。 理解这个格式对于开发与LDAP交互的应用程序至关重要。例如,一个简单的查询所有uid为"bjensen"的用户的URL可能是这样的: ``` ldap://example....

    perl-ldap-开源

    库还支持范围查询、排序和分页。 3. 操作目录条目:Perl LDAP库提供了对目录条目的CRUD(创建、读取、更新、删除)操作。例如,可以创建新的条目,检索现有条目的信息,修改条目的属性,或者彻底删除条目。 4. ...

    spring data book

    6. **分页和排序**:Spring Data提供了便捷的分页和排序功能,只需在Repository接口中添加方法签名即可。 7. **事件驱动架构**:Spring Data支持事件监听,可以在数据操作前后触发自定义逻辑,例如缓存更新、日志...

    DelphiXE2DataSnap开发实战篇_李维

    5. **数据过滤与排序**:在服务器端,可以利用DataSnap服务对数据进行预处理,如过滤、排序,减少不必要的网络传输。 6. **事件驱动编程**:DataSnap允许开发者定义服务器端的事件,以便在特定操作(如数据更改)...

    php网络开发完全手册

    15.3.7 结果集的分页 248 15.3.8 用户动态添加记录 249 15.3.9 用户动态更新记录 251 15.3.10 用户动态删除记录 253 15.4 使用PHP获取MySQL数据库的信息 255 15.4.1 获取数据库的信息 255 15.4.2 获取表的信息 256 ...

    ORACLE9i_优化设计与系统调整

    第一部分 ORACLE系统优化基本知识 23 第1章 ORACLE结构回顾 23 §1.1 Oracle数据库结构 23 §1.1.1 Oracle数据字典 23 §1.1.2 表空间与数据文件 24 §1.1.3 Oracle实例(Instance) 24 §1.2 Oracle文件 26 ...

    java开源包1

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包11

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包2

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包3

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包6

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包5

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包10

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包4

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包8

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包7

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

Global site tag (gtag.js) - Google Analytics