Programación en castellano Añadir una dirección | Buscador | Cursos | Artículos | Foros | Formación

Sistema de Nombrado en Java (JNDI) [Parte I]
Autor: Sun
Traductor: Juan Antonio Palos (Ozito)


En esta página:


Búsqueda Básica

La forma más sencilla de búsqueda requiere que especifiquemos un conjunto de atributos que la entrada debe tener y el nombre del contexto fuente en el que realizar la búsqueda.

El siguiente código crea un conjunto de atrivutos matchAttrs, que tiene dos atributos "telephonenumber" y "mail".

Especifica que las entradas cualificadas deben tener un atributo apellido ("sn") con un valor de "Geisel" y un atributo "mail" con cualquier valor. Luego llama a  DirContext.search() para buscar las entradas en el contexto "ou=People" que tienen los atributos especificados por matchAttrs.

// Specify the attributes to match
// Ask for objects that has a surname ("sn") attribute with 
// the value "Geisel" and the "mail" attribute
Attributes matchAttrs = new BasicAttributes(true); // ignore attribute name case
matchAttrs.put(new BasicAttribute("sn", "Geisel"));
matchAttrs.put(new BasicAttribute("mail"));

// Search for objects that have those matching attributes
NamingEnumeration answer = ctx.search("ou=People", matchAttrs);

Podemos imprimir los resultados de esta forma.

while (answer.hasMore()) {
    SearchResult sr = (SearchResult)answer.next();
    System.out.println(">>>" + sr.getName());
    printAttrs(sr.getAttributes());
}

printAttrs() es similar al código del ejemplo getAttributes()  que imprime un conjunto de atributos.

Ejecutar este ejemplo produce la siguiente salida.

# java SearchRetAll
>>>cn=Ted Geisel
attribute: sn
value: Geisel
attribute: objectclass
value: top
value: person
value: organizationalPerson
value: inetOrgPerson
attribute: jpegphoto
value: [B@1dacd78b
attribute: mail
value: Ted.Geisel@JNDITutorial.com
attribute: facsimiletelephonenumber
value: +1 408 555 2329
attribute: cn
value: Ted Geisel
attribute: telephonenumber
value: +1 408 555 5252

Devolver los Atributos Seleccionados

El ejemplo anterior devuelve todos los atributos asociados con las entradas que satisfacen la consulta especificada. Podemos seleccionar los atributos devueltos pasando a search() un array de identificadores de atributos que queremos incluir en los resultados. Después de crear un matchAttrs como se vió anteriormente, también necesitamos crear el array de identificadores de atributos, como se muestra aquí.

// Specify the ids of the attributes to return
String[] attrIDs = {"sn", "telephonenumber", "golfhandicap", "mail"};

// Search for objects that have those matching attributes
NamingEnumeration answer = ctx.search("ou=People", matchAttrs, attrIDs);

Este ejemplo devuelve los atributos "sn", "telephonenumber", "golfhandicap", y "mail" de las entradas que tienen un atributo "mail" y tienen un atributo "sn" con el valor "Geisel".

Este ejemplo produce la siguiente salida. (La entrada no tiene un atributo "golfhandicap", por eso no se devuelve.)

# java Search 
>>>cn=Ted Geisel
attribute: sn
value: Geisel
attribute: mail
value: Ted.Geisel@JNDITutorial.com
attribute: telephonenumber
value: +1 408 555 5252

Principio Página
© 1999-2002, Programación en castellano, s.l.
Contacto - Datos legales

ReD Internet: Hospedaje Web | envio sms gratis | Salvapantallas | Fondos de Escritorio, famosas | melodias moviles gratis| Gratis