- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 Mybatis获取多参数完整执行SQL
上一篇介绍了Mybatis如何获取查询接口的有序参数列表,这一篇会结合上一篇的内容解决实际问题,最近遇到了查询报表并将查询内容导出Excel文件的实际场景,需要获取到查询的完整SQL再通过导出工具导出Excel。主要代码如下//methodPath为执行方法的全限定名//map为methodPath的参数列表,在查询接口多参数和单个参数的情况下会有一点差别public static void InSql(String methodPath, Map<String, Object> map
2021-07-13 11:16:46
1246
3
原创 Mybatis获取有序的参数列表的过程
MappedStatement类中的getBoundSql()主要作用解析标签节点,如where、if等组成动态SQL的标签。方法内部分析:40行:根据configuration解析的配置信息和手动传入的参数列表生成DynamicContext,稍后用于动态sql拼接41行:对动态sql的标签进行解析,并对sql进行拼接。此时getBoundSql()方法入口传入的map集合,进行动态sql拼接时,判断map中的key是否在动态sql的条件表达式中存在,存在则将条件中的sql进行拼接。倘若
2021-07-13 09:58:57
809
原创 JVM学习笔记整理
JVM运行流程和结构栈、本地方法栈、程序计数器这三个地方不会有垃圾回收,因为它们的生命周期是和线程同步的,随着线程的销毁,它们的内存也会自动释放。方法区和堆会进行垃圾回收,回收的对象是那些不存在任何引用的对象。方法区方法区存放了要加载类的信息(类名、修饰符等),静态变量、构造函数、final定义的常量、类中的字段和方法等。方法区是全局共享的,在一定条件下也会被GC。**方法区中包含运行时常量池:**主要用于存储编译器生成的常量和引用,也存储运行时生成的常量,String类维护了一个常量池,如果调用
2021-06-16 11:07:16
218
原创 pgsql使用generate_series函数批量插入时提示键值已存在的问题
在对程序做测试需要对数据库做批量数据的插入我这里使用了generate_series()函数,但在使用时遇到了代码如下INSERT INTO zf_active select generate_series(147,149) as key, 1, 1, generate_series ( '2021-04-01 12:00:00':: TIMESTAMP, ('2021-04-01 16:00:00' ) :: TIMESTAMP, '1hour'), 1, '天上人间',
2021-04-07 16:50:41
1011
原创 ElasticSearch7.6x聚合从入门到放弃:使用java聚合的十五个案例
聚合是桶和指标组成的当聚合开始执行时,每个文档里面的值通过计算来决定符合哪个桶,如果匹配,文档将会被放入对应的桶中桶满足特定条件的文档 相当于sql的group by。多个嵌套级的aggregation,类似于sql多字段分组(group by field1,field2)指标对桶内的文档进行统计计算 相当于count(),sum(),max()等统计方法POST /cars/transactions/_bulk{ "index": {}}{ "price" : 10000, "
2021-03-26 09:12:02
1075
原创 ElasticSearch某个节点与集群失联这个过程会发生什么?
什么是脑裂?假设现有两个节点组成的集群。节点一在启动时被选为主节点并保存了主分片,节点二保存主分片的副本分片。现在由于网络故障导致一个集群被划分成了两片,节点二现在发现集群中没有主节点就会自动将自身提升为主节点。由于主节点被认为是集群的最高统治者,它决定了什么时候创建新的索引,分片的移动等等。那么现在就会出现一个集群中出现两个主节点的情况,数据的完整性将得不到保证。如何避免脑裂的问题的出现:elasticsearch的config文件夹中的application.yml中有一个这样的配置di
2021-03-25 17:58:39
1222
原创 ElasticSearch7.6x使用java聚合遇到的字段类型的问题
今天对着ES官方文档尝试使用聚合,但是在使用过程中出现了异常。异常如下:ElasticsearchStatusException[Elasticsearch exception [type=search_phase_execution_exception, reason=all shards failed]]; nested: ElasticsearchException[Elasticsearch exception [type=illegal_argument_exception, reason=T
2021-03-19 10:39:54
838
1
原创 Lucene搜索引擎的倒排索引
Lucene最核心的部分是倒排索引什么是倒排索引?根据属性的值来查找记录,这种索引表中的每一项都包含一个属性值和该属性值的记录地址,由于不是由记录来确定属性值而是有属性值来确定记录的位置,因此被称为倒排索引。就像新华词典,将关键词作为目录,根据目录查找关键词的位置信息从而获取内容的位置。如何建立倒排索引?Lucene会根据关键词索引和查询,先根据文章内容分词,将一些没有意义的单词和标点符号会过滤掉,如in,once,too等,还会将文章单词的大小写进行统一处理以满足用户查找时输入单词不区分大小写的
2021-03-05 17:08:20
291
1
原创 SpringCloud五大组件
注册中心 Eureka Eureka专门负责服务的注册与发现。系统中的每个服务都包含一个Eureka Client组件,这个组件专门将包含他的那个服务注册到Eureka Server中。每个服务既可以是服务提供者也可以使服务消费者服务注册 Register 当Eureka客户端(提供者)向Eureka Server 注册时,它将提供自身的元数据,比如IP地址,端口,运行状态等,服务续约 Renew Eureka客户每隔30s发送一次心跳续约,通过续约来告知Eureka Server该E
2021-03-04 17:32:38
309
3
原创 Mysql 索引、非聚集索引与聚集索引的底层原理
索引如上表,是一张两列七行的数据表在不加任何索引的情况下进行查询,例如select * from t where t.col2 = 89他会从第一行开始依次往下取col2的值与89进行比较,直到查找至表的最后一行,每一行的读取叫做一次磁盘I/O,此次查询总共经历7次磁盘I/O,在第6次磁盘I/O的时候查找到想要的数据数据库的索引是一种数据结构当在col2列上加上索引后,他会将此列的数据放在一种叫做二叉树的数据结构上(实际上是B+树的数据结构)如:再次执行sql:select * from
2021-02-03 17:22:21
244
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅