摘要: 一.软件设计的六大原则,通常被称为SOLID原则, 是面向对象设计(OOD)中最重要的指导方针之一。这些原则旨在提高软件的可维护性、可扩展性和可读性。以下是SOLID原则的详细解释: 1. 单一职责原则 (Single Responsibility Principle, SRP) 单一职责原则指出, 阅读全文
posted @ 2024-07-04 22:35 gongchengship 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 在MySQL中,事务隔离级别定义了事务之间如何相互隔离,以及数据的一致性和并发性如何平衡。REPEATABLE READ(可重复读)是MySQL中四种事务隔离级别之一,它在保证数据一致性的同时,允许较高的并发性。 MySQL的四种事务隔离级别 READ UNCOMMITTED(未提交读) READ 阅读全文
posted @ 2024-07-04 22:27 gongchengship 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 一. Mysql 数据库 的 RR 隔离级别下, 如果在事务中使用SELECT ... FOR UPDATE, 实现如下伪代码所描述的效果: “ begin transaction select id from t where status = false limit 1,1; if select 阅读全文
posted @ 2024-07-04 22:13 gongchengship 阅读(8) 评论(0) 推荐(0) 编辑
摘要: ShedLock 是一个分布式锁解决方案,用于在分布式系统中确保某些任务在同一时间只被一个实例执行。它的主要用途是解决分布式环境中定时任务的并发执行问题。以下是需要 ShedLock 的几个原因: 1. 避免任务重复执行 在分布式系统中,定时任务可能会在多个实例上并发执行,这会导致任务重复执行的问题 阅读全文
posted @ 2024-07-04 22:03 gongchengship 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 状态模式(State Pattern)的精髓在于将对象的行为包装在状态对象中,并通过状态对象改变对象的行为。它允许对象在内部状态改变时改变其行为,使得对象看起来好像修改了其类。 核心思想 状态封装: 将不同状态下的行为封装到不同的状态类中,避免了大量的条件语句(如 if 或 switch)。 状态转 阅读全文
posted @ 2024-07-04 20:17 gongchengship 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 好的,下面我们将用状态模式来实现一个模拟从银行卡取钱的流程。 假设我们有以下几个状态: 输入卡 输入密码 选择操作 取款 取卡 我们通过状态模式来实现这些状态之间的切换。 状态接口 首先,我们定义一个状态接口 ATMState: // ATMState.java public interface A 阅读全文
posted @ 2024-07-04 20:13 gongchengship 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 在使用PostgreSQL进行批量插入时,默认情况下并不会锁定整张表。批量插入(bulk insert)操作通常是通过INSERT语句、COPY命令或类似的批处理方法来实现的。PostgreSQL在这些操作中使用行级锁,而不是表级锁。 行级锁(Row-level Lock) PostgreSQL的行 阅读全文
posted @ 2024-07-04 20:09 gongchengship 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 在Java中,有多种工具和库可以快速将CSV文件的数据导入到数据库中。以下是几种常用的方法和工具: 1. 使用OpenCSV和JDBC OpenCSV是一个非常流行的库,可以轻松读取和写入CSV文件。结合JDBC,可以将CSV文件的数据快速存储到数据库中。 示例代码 首先,添加OpenCSV库的依赖 阅读全文
posted @ 2024-07-04 20:09 gongchengship 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 在Elasticsearch中,增加相当于MySQL中的一列字段的操作被称为“添加字段到索引映射”。与MySQL不同,Elasticsearch是一个文档存储引擎,使用索引和类型来组织数据。每个文档都有其特定的映射(mapping),定义了字段及其数据类型。 增加字段到Elasticsearch映射 阅读全文
posted @ 2024-07-04 20:06 gongchengship 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 在Java中连接Elasticsearch可以使用Elasticsearch提供的官方Java客户端。Elasticsearch官方提供的Java客户端有多种,其中最常用的是RestHighLevelClient。下面是使用RestHighLevelClient连接Elasticsearch的详细步 阅读全文
posted @ 2024-07-04 20:06 gongchengship 阅读(48) 评论(0) 推荐(0) 编辑