首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

LdapContext,怎么做select count(*)

您好,您提到的 LdapContext 是一个 Java 类,用于与 LDAP 目录服务进行交互。在 LDAP 中,可以使用 LDAP 查询语言 (LDAP Query Language) 进行查询,包括搜索和修改操作。

在 LdapContext 中,可以使用 search() 方法执行 LDAP 查询,并返回搜索结果。为了执行 select count(*) 查询,您可以使用 search() 方法,并指定搜索约束和属性。

以下是一个示例代码,演示如何使用 LdapContext 执行 select count(*) 查询:

代码语言:java
复制
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
import java.util.Hashtable;

public class LdapCountExample {
    public static void main(String[] args) {
        Hashtable<String, String> env = new Hashtable<>();
        env.put("java.naming.factory.initial", "com.sun.jndi.ldap.LdapCtxFactory");
        env.put("java.naming.provider.url", "ldap://localhost:389/dc=example,dc=com");
        env.put("java.naming.security.authentication", "simple");
        env.put("java.naming.security.principal", "cn=admin,dc=example,dc=com");
        env.put("java.naming.security.credentials", "password");

        try {
            InitialDirContext context = new InitialDirContext(env);

            SearchControls controls = new SearchControls();
            controls.setSearchScope(SearchControls.SUBTREE_SCOPE);
            controls.setCountLimit(Integer.MAX_VALUE);
            controls.setTimeLimit(Integer.MAX_VALUE);

            NamingEnumeration<SearchResult> results = context.search("", "(objectClass=*)", controls);

            int count = 0;
            while (results.hasMore()) {
                results.next();
                count++;
            }

            System.out.println("Count: " + count);

            context.close();
        } catch (NamingException e) {
            e.printStackTrace();
        }
    }
}

在上面的示例代码中,我们使用 InitialDirContext 类创建 LDAP 上下文,并指定 LDAP 服务器的 URL、认证信息等。然后,我们使用 search() 方法执行 LDAP 查询,并使用 SearchControls 类指定搜索范围、计数限制和时间限制等参数。最后,我们遍历搜索结果,并计算结果的数量。

需要注意的是,上面的示例代码只是一个简单的示例,实际应用中可能需要根据具体情况进行调整。例如,可以根据实际需要调整搜索过滤器、搜索范围等参数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Select count(*)、Count(1)、Count(0)的区别和执行效率比较

count()的执行效率比count(col)高,因此可以用count()的时候就不要去用count(col)。...count(col)的执行效率比count(distinct col)高,不过这个结论的意义不大,这两种方法也是看需要去用。...如果是对特定的列做count的话建立这个列的非聚集索引能对count有很大的帮助。 如果经常count()的话则可以找一个最小的col建立非聚集索引以避免全表扫描而影响整体性能。...在不加WHERE限制条件的情况下,COUNT()与COUNT(COL)基本可以认为是等价的; 但是在有WHERE限制条件的情况下,COUNT()会比COUNT(COL)快非常多; count(0)=...count(1)=count(*) count(指定的有效值)--执行计划都会转化为count(*) 如果指定的是列名,会判断是否有null,null不计算 当然,在建立优化count的索引之前一定要考虑新建立的索引会不会对别的查询有影响

1.2K20
  • select count(*)、count(1)、count(主键列)和count(包含空值的列)有何区别?

    下班路上看见网上有人问一个问题: oracle 10g以后count(*)和count(非空列)性能方面有什么区别?...我们分别用10053打印如下4组SQL的trace, SQL1:select count(*) from bisal; SQL2:select count(1) from bisal; SQL3:select...count(id1) from bisal; SQL4:select count(id2) from bisal; 我们来看下这四个SQL的执行结果, ?...可以看出一个问题,就是这三个SQL经过Oracle转换,执行的SQL其实都是select count(*) from bisal,因此对应的执行计划成本选择,这三个SQL相同, ?...总结: 11g下,通过实验结论,说明了count()、count(1)和count(主键索引字段)其实都是执行的count(),而且会选择索引的FFS扫描方式,count(包含空值的列)这种方式一方面会使用全表扫描

    3.4K30

    踩坑实录Hive中select * 没有数据,而select count(*)有数据

    目录 背景 问题定位 原因1.压缩导致 解决方案 原因2.分区文件location不一致导致 解决方案 原因3.元数据未更新 解决方案 ---- 背景 hdfs文件有数据,Hive中select * 没有数据...,而select count(*)有数据 问题定位 原因1.压缩导致 表结构未压缩,数据压缩了,select查询与表结构有关系 解决方案 使用select时指定与数据一致的压缩方法就可以查询出来压缩过的收据了...set LOCATION='jfs://hd01-jfs/apps/hive/warehouse/db_name.db/table_name/ds=2022-05-27' ; 批量生成所有分区修改语句 select...join sds b on a.SD_ID=b.SD_ID where a.TBL_ID='502002' 原因3.元数据未更新 建表以location的方式加载数据,元数据没有记录新的数据,当执行 count...解决方案 set hive.compute.query.using.stats=true; 当hive.compute.query.using.stats=true时,select count(*) from

    78430

    我说 SELECT COUNT(*) 会造成全表扫描,面试官让我回去等通知

    来源:码海 作者:码海 SELECT COUNT(*) FROM SomeTable SELECT COUNT(1) FROM SomeTable 原因是会造成全表扫描,有位读者说这种说法是有问题的,...EXPLAIN 来查询了一下执行计划 EXPLAIN SELECT COUNT(*) FROM SomeTable 结果如下 ?...如图所示: 发现确实此条语句在此例中用到的并不是主键索引,而是辅助索引,实际上在此例中我试验了,不管是 COUNT(1),还是 COUNT(*),MySQL 都会用成本最小的辅助索引查询方式来计数,也就是使用...随带提一句,COUNT(*)是 SQL92 定义的标准统计行数的语法,并且效率高,所以请直接使用COUNT(*)查询表的行数! 所以这位读者的说法确实是对的。...COUNT(*) FROM person ?

    2.3K40

    我说 SELECT COUNT(*) 会造成全表扫描,面试官让我回去等通知

    前言 上篇 SQL 进阶技巧(下) 中提到使用以下 sql 会导致慢查询 SELECT COUNT(*) FROM SomeTable SELECT COUNT(1) FROM SomeTable 原因是会造成全表扫描...,我首先去生产上找了一个千万级别的表使用 EXPLAIN 来查询了一下执行计划 EXPLAIN SELECT COUNT(*) FROM SomeTable 结果如下 ?...如图所示: 发现确实此条语句在此例中用到的并不是主键索引,而是辅助索引,实际上在此例中我试验了,不管是 COUNT(1),还是 COUNT(*),MySQL 都会用成本最小的辅助索引查询方式来计数,也就是使用...随带提一句,COUNT(*)是 SQL92 定义的标准统计行数的语法,并且效率高,所以请直接使用COUNT(*)查询表的行数! 所以这位读者的说法确实是对的。...COUNT(*) FROM person ?

    52720
    领券