📄 devicesearchnomodify.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 + -