Java JNDI LDAP的Filter查询 条件查询 通配符

---------------------------------------------------------------------------------------------------------------------------------
逻辑运算符:

&   逻辑与
|    逻辑或
!   逻辑非
---------------------------------------------------------------------------------------------------------------------------------
其他符号: 

*   通配符
---------------------------------------------------------------------------------------------------------------------------------
假设目录用户节点ou=user,dc=domain下存储用户:

结构如下:
dc=domain
|-ou=user
   |-cn=zhangsan
   |-cn=lisi
   |-cn=wangwu
   |-cn=zhaoliu
   
用户属性如下(用cn=zhangsan节点来表示):
cn=zhangsan
objectClass=top
objectClass=person
name=张三
sex=男
age=28
pwd=123456
[email protected]
desc=描述
---------------------------------------------------------------------------------------------------------------------------------
实例一:
查询所有name为张三,sex为男的用户:
(&(name=张三)(sex=男))
---------------------------------------------------------------------------------------------------------------------------------
实例二:
查询所有age不为28的用户:
(!(age=28))
---------------------------------------------------------------------------------------------------------------------------------
实例三:
查询所有age为28,并且name不为张三的用户:
(&(age=28)(!(name=张三)))
---------------------------------------------------------------------------------------------------------------------------------
实例四:
查询所有age为28,或者name为张三的用户:
(|(age=28)(name=张三))
---------------------------------------------------------------------------------------------------------------------------------
实例五:
查询所有name的姓为张,或者desc包含描述的用户:
(|(name=张*)(desc=*描述*))
---------------------------------------------------------------------------------------------------------------------------------
实例六:(查询所有属性存在,但值为空):
查询所有有email为空(目录中有属性)的用户:
(email=)
---------------------------------------------------------------------------------------------------------------------------------
实例七:(查询所有属性存在的):
查询所有没有desc属性的用户:
(!(desc=*))
---------------------------------------------------------------------------------------------------------------------------------
实例八:(查询所有属性不存在的):
查询所有有desc属性的用户:
(desc=*)
(!(!(desc=*)))
---------------------------------------------------------------------------------------------------------------------------------

你可能感兴趣的:(Java JNDI LDAP的Filter查询 条件查询 通配符)