⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 devicesearchnomodify.java

📁 简单的操作ldap的管理系统
💻 JAVA
字号:
/*
 * 创建日期 2007-5-22
 *
 * 更改所生成文件模板为
 * 窗口 > 首选项 > Java > 代码生成 > 代码和注释
 */
package ldap;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Enumeration;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.SearchControls ;
import javax.naming.NamingEnumeration;
import javax.naming.directory.SearchResult;
import javax.naming.directory.Attributes ;
import javax.naming.directory.Attribute;
import javax.naming.directory.BasicAttributes;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.ModificationItem;
import java.lang.reflect.Method;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import javax.naming.*;

import mypack.DeviceMeta;
/**
 * @author qzj
 *
 * 更改所生成类型注释的模板为
 * 窗口 > 首选项 > Java > 代码生成 > 代码和注释
 */
public class DeviceSearchNoModify {
	  
	    public static String	MY_SEARCHBASE="ou=Test1,ou=MetaEntities, o=MetaSubTree";
		public static String MY_FILTER="(flag=1)";//查询的属性
		DirContext ctx = null;
		int n=0;//记录条目数
	    public DeviceMeta []deviceData;
		
		
   
 /////////////初始化  
	public void init(){
				String account="orcladmin";//操作LDAP的帐户。默认就是Admin。
				String password="welcome";//帐户Admin的密码。
				
				Hashtable env = new Hashtable();
				env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");//必须这样写,无论用什么LDAP服务器。
				env.put(Context.PROVIDER_URL, "ldap://210.25.133.32:4032/");//LDAP服务器的地址:端口。对WLS端口就是7001
				env.put(Context.SECURITY_AUTHENTICATION, "simple");//授权界别,可以有三种授权级别,但是如果设为另外两种都无法登录,我也不知道为啥,但是只能设成这个值"none"。
				env.put(Context.SECURITY_PRINCIPAL, "cn=" + account );//载入登陆帐户和登录密码
				env.put(Context.SECURITY_CREDENTIALS, password);
				try{
					ctx = new InitialDirContext(env);//初始化上下文
					System.out.println("认证成功");//这里可以改成异常抛出。
				}catch(javax.naming.AuthenticationException e){
					System.out.println("认证失败");
				}catch(Exception e){
					System.out.println("认证出错:"+e);
				}
		 }
		 
///////////////////连接关闭		 
	public void close(){
				if(ctx != null)
				{
					try
					{
						ctx.close();
						System.out.println("成功关闭");
					}
					catch (NamingException e)
					{
						System.out.println("NamingException in close():"+e);
					}
				}    
			}
			
	public void search(String a){
		
	   
			 String[]AttributeDevice={
				"GTitle",
				"GTaxonomy",
				"gaddressidentifier",
				"Gdescription",
				"equipmentproduceplace",
				"equipmentmanufacturer",
				"equipmentpurchasedate",
				"guridentifier",
				"gtype",
				"equipmentmodel",
			 };
    	
		
		   ArrayList listofValue=new ArrayList();
    
	   try {
	   	   
		   SearchControls constraints = new SearchControls();
		   constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
		   NamingEnumeration results=ctx.search("ou="+a+","+MY_SEARCHBASE,MY_FILTER,constraints);
		   while(results!=null &&results.hasMore()){

		   String temp[]=new String[AttributeDevice.length];
		   SearchResult sr=(SearchResult)results.next();

		   Attributes attrs=sr.getAttributes();
		   for(int i=0;i<AttributeDevice.length;i++){
			   Attribute att=attrs.get(AttributeDevice[i]);
			   NamingEnumeration ne=att.getAll();
			   temp[i]=new String();
			   while(ne.hasMoreElements())
				   temp[i]+=(ne.nextElement()+" ");

        	
        
		   }
			   listofValue.add(temp);
		   }
		   deviceData=new DeviceMeta[listofValue.size()];
		   for(int j=0;j<deviceData.length;j++){

			   String[] t=(String[])listofValue.get(j);
			
			   int k=0;
			   deviceData[j]=new DeviceMeta();
			   deviceData[j].setGTitle(t[k]);
			   k++;
			   deviceData[j].setGTaxonomy(t[k]);
			   k++;
			   deviceData[j].setGaddressidentifier(t[k]);
			   k++;
			   deviceData[j].setGDescription(t[k]);
			   k++;
			deviceData[j].setEquipmentproduceplace(t[k]);
			k++;
			deviceData[j].setEquipmentmanufacturer(t[k]);
			k++;
			deviceData[j].setEquipmentpurchasedate(t[k]);
			k++;
			deviceData[j].setGuridentifier(t[k]);
			k++;
			deviceData[j].setGtype(t[k]);
			k++;
			deviceData[j].setEquipmentmodel(t[k]);
			k++;
			
			
			
		   }
        
		 
		   n++;//每次返回记录计数器都加一
		
       
	
			}
	    
	   catch(Exception e){
			e.printStackTrace();
			System.exit(1);
						 }
    
    
	   }
	  
//////////////////////////////////主函数/////////////////////////////////
 

public static void  main(String[]args)
	{
		DeviceSearchNoModify tt=new DeviceSearchNoModify();
		tt.init();
		tt.search("01");
		for(int i=0;i<tt.deviceData.length;i++)
		{
		System.out.println("仪器名称: "+tt.deviceData[i].getGTitle()+"\n"
		                  +"分类号:   "+tt.deviceData[i].getGTaxonomy()+"\n"
		                  +"通信地址: "+tt.deviceData[i].getGaddressidentifier()+"\n"
		                  +"功能描述: "+tt.deviceData[i].getGDescription()+"\n"
		                  +"产地:     "+tt.deviceData[i].getEquipmentproduceplace()+"\n"
		                  +"生产厂商: "+tt.deviceData[i].getEquipmentmanufacturer()+"\n"
		                  +"购置日期: "+tt.deviceData[i].getEquipmentpurchasedate()+"\n"
		                  +"详细信息: "+tt.deviceData[i].getGuridentifier()+"\n"
		                  +"类型:     "+tt.deviceData[i].getGtype()+"\n"
		                  +"规格:     "+tt.deviceData[i].getEquipmentmodel());
		  
		System.out.println("***********************第"+(i+1)+"条记录 ");
		}
		System.out.println("共返回"+tt.deviceData.length+"条记录");
		tt.close();		
			   
	}
	   
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -