摘要:
数据库查询相信很多人都不陌生,所有经常有人调侃程序员就是CRUD专员,这所谓的CRUD指的就是数据库的增删改查。在数据库的增删改查操作中,使用最频繁的就是查询操作。而在所有查询操作中,统计数量操作更是经常被用到。关于数据库中行数统计,无论是MySQL还是Oracle,都有一个函数可以使用,那就是CO 阅读全文
摘要:
一 condition 介绍及demoCondition是在java 1.5中才出现的,它用来替代传统的Object的wait()、notify()实现线程间的协作,相比使用Object的wait()、notify(),使用Condition的await()、signal()这种方式实现线程间协作更 阅读全文
摘要:
一、Semaphore是什么Semaphore 通常我们叫它信号量,可以用来控制同时访问特定资源的线程数量,通过协调各个线程,以保证合理的使用资源。可以把它简单的理解成我们停车场入口立着的那个显示屏,每有一辆车进入停车场显示屏就会显示剩余车位减1,每有一辆车从停车场出去,显示屏上显示的剩余车辆就会加 阅读全文
摘要:
1.RocketMQ的存储架构 1.1存储特点 消息主体以及元数据都存储在CommitLog当中 Consume Queue相当于kafka中的partition,是一个逻辑队列,存储了这个Queue在CommiLog中的起始offset,log大小和MessageTag的hashCode。 每次读 阅读全文
摘要:
Buket Aggregations(桶聚合)不像metrics Aggregations(度量聚合)那样计算字段上的度量,而是创建文档桶,每个文件桶有效地定义一个文档集。除了bucket本身之外,bucket聚合还计算并返回“落入”每个bucket的文档的数量。与度量聚合相反,桶聚合可以嵌套子聚合 阅读全文
摘要:
Metric聚合,主要针对数值类型的字段,类似于关系型数据库中的sum、avg、max、min等聚合类型。一、avg 平均值 对字段grade取平均值。对应的java示例如下: @Resource private RestHighLevelClient client ; @Test public v 阅读全文
摘要:
虽然我们都知道有23个设计模式,但是大多停留在概念层面,真实开发中很少遇到。Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。Mybatis至少遇到了以下的设计模式的使用:1、Builder模式,例如SqlSessionFactoryBuilde 阅读全文
摘要:
1、实例代码在实例搭建文章中,通过 SqlSession 对象查询数据,可乐写了两种方法。①、常规的需要我们拼接 statement 方式;②、xxxMapper.interface 接口代理方式; 对应下面两种方法: //根据id查询person表数据 @Test public void test 阅读全文
摘要:
第一步:读取配置文件 mybatis-config.xml 输入流第二步:根据输入流构建 SqlSessionFactory; 一.流程图如下所示: 二、代码剖析根据上面的时序图,我们分析根据源码分析每个步骤。①、获取配置文件输入流 InputStream inputStream = Resourc 阅读全文
摘要:
一、建造者模式的概念建造者模式属于创建型设计模式。指的是将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。建造者模式主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化, 阅读全文