摘要: KMP 字符串搜索算法是 Knuth、Morris、Pratt 三位在类似的时间段内一起发明的一种字符串搜索算法,该算法的主要原理是利用待查找子串中的某些信息,在匹配失败时能够减少回退的步数 算法原理 假设现在有一个待搜索的字符串 ABABAC,如何利用现有的字符串实现在字符不匹配时尽可能向后调整搜 阅读全文
posted @ 2024-02-24 08:29 FatalFlower 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 在一般的 Spring 应用中,如果底层数据库访问采用的是 MyBatis,那么在大多数情况下,只使用一个单独的数据源,Spring 的事务管理在大多数情况下都是有效的。然而,在一些复杂的业务场景下,如需要在某一时刻访问不同的数据库,由于 Spring 对于事务管理实现的方式,可能不能达到预期的效果 阅读全文
posted @ 2024-01-08 21:21 FatalFlower 阅读(481) 评论(0) 推荐(1) 编辑
摘要: 一般来讲,在使用 MyBatis 进行数据库的访问时,通常会遇到需要更新数据的相关业务,在某些业务场景下,如果需要进行一批次的数据更新,可能性能不是特别理想。本文将简要介绍几种能够高效地处理批量更新数据的实现方式 单语句的批量更新 在某些业务场景下,可能更新的到的数据都在同一个表中,关联到的业务也是 阅读全文
posted @ 2023-12-13 21:23 FatalFlower 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 问题起因 Spring 的 JDBC 相关的依赖库已经提供了对 JDBC 类事务处理的统一解决方案,在正常情况下,我们只需要在需要添加事务的业务处理方法上加上 @Transactional 注解即可开启声明式的事务处理。这种方式在单线程的处理模式下都是可行的,这是因为 Spring 在对 @Tran 阅读全文
posted @ 2023-09-19 08:32 FatalFlower 阅读(388) 评论(0) 推荐(0) 编辑
摘要: 开窗函数 (Window Function)提供了行集之间的计算能力,在现代的主流关系型数据库中,基本都提供了相似的功能,这些功能在一些业务开发的过程中很有用,本文将简要介绍这些常用的开窗函数 ## ROW_NUMBER() `ROW_NUMBER()` 函数的使用语法如下: ``` sql ROW 阅读全文
posted @ 2023-08-13 18:47 FatalFlower 阅读(443) 评论(0) 推荐(0) 编辑
摘要: 具体的 SQL 模板实现如下所示: ``` java import org.apache.ibatis.mapping.MappedStatement; import tk.mybatis.mapper.MapperException; import tk.mybatis.mapper.entity 阅读全文
posted @ 2023-05-22 09:46 FatalFlower 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 概述 《设计模式》一书中对于 “模板方法模式” 的意图描述如下: 定义一个操作中的算法骨架,而将一些步骤延迟到子类中 一般在以下几种情况下使用模板方法模式: 一次性实现一个算法的不可变部分,并将可变的行为留给子类来实现 各个子类中的公共行为应当被提取出来并集中到一个公共父类中以避免重复代码(提炼父类 阅读全文
posted @ 2023-04-20 21:06 FatalFlower 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 概述 《设计模式》一书中对于 “策略模式” 的意图描述如下: 定义一系列算法,将它们一个个封装起来,并是他们可以相互替代 一般策略模式的 UML 图如下所示: 一般在以下几种情况中使用策略模式: 许多相关的类仅仅是行为有异。“策略” 提供了一种用多个行为中的一个行为来配置一个类的方法 需要使用一个算 阅读全文
posted @ 2023-04-16 21:14 FatalFlower 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 概述 《设计模式》一书中对于 “状态模式” 的描述如下: 允许一个对象在其内部状态发生改变时改变它的行为,使得这个对象看起来像修改了它的类 状态模式的 UML 图如下所示: 一般在以下几种情况下使用状态模式: 一个对象的行为取决于它的状态 一个操作中含有庞大的多分支条件语句,且这些分支依赖于该对象的 阅读全文
posted @ 2023-04-16 14:53 FatalFlower 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 概述 《设计模式》一书中对于观察者模式的意图描述如下: 定义对象中的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都能得到通知并被更新 观察者模式的 UML 图如下所示: 一般在以下情况下使用观察者模式: 一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这二者封装在独立 阅读全文
posted @ 2023-04-12 20:29 FatalFlower 阅读(16) 评论(0) 推荐(0) 编辑