- 博客(18)
- 收藏
- 关注
原创 打卡功能的设计
打卡功能对于一个系统来说还算是挺重要的,我们可以通过用户打卡来给用户一些激励,也可以提高我们系统的用户活跃度。因此这篇文章就介绍一下我对打卡功能的一个设计流程。
2024-08-16 16:16:51
957
原创 Docker详解
各位肯定都用过Docker,平常用它来装一些中间件那不要太方便,这篇文章主要就是将Docker的知识做一个归纳总结。学习之前,默认各位已经安装了docker还有docker-compose了。
2024-08-02 13:40:01
1103
1
原创 MySQL事务
接着,事务 A 对 id = 5 这条记录进行了更新操作,在这个时刻,这条新记录的 trx_id 隐藏列的值就变成了事务 A 的事务 id,之后事务 A 再使用普通 select 语句去查询这条记录时就可以看到这条记录了,于是就发生了幻读。此时,事务 A 更新 id = 5 这条记录,对没错,事务 A 看不到 id = 5 这条记录,但是他去更新了这条记录,这场景确实很违和,然后再次查询 id = 5 的记录,事务 A 就能看到事务 B 插入的纪录了,幻读就是发生在这种违和的场景。
2024-06-27 14:16:38
728
原创 MVCC机制
在上一篇介绍了实现MVCC的两个主要的模块:undo log、ReadView,undo log在上一篇介绍过,这一篇会介绍ReadView。这种通过「版本链」来控制并发事务访问同一个记录时的行为就叫 MVCC(多版本并发控制)。这两个隐藏列对于undo log十分重要,回滚就靠这个。
2024-06-27 09:34:32
192
原创 一条SQL更新语句是如何执行的?
假设有这么一条sql: UPDATE t_user SET name = 'lw' WHERE id = 1;这里不介绍MySQL的日志,因为很重要,所以会单独开一篇。更新语句和查询语句的执行最大的区别就是多了一个。查询语句的流程建议看这篇文章。
2024-06-22 16:11:48
426
原创 一条SQL查询语句是如何执行的?
平常我们在使用数据库的时候,看到的只是输入一条语句,返回一个结果,却不知道这条语句在 MySQL 内部的执行 过程。这篇文章就是讲MySQL拆解一下,了解内部运行机制,加深对MySQL的理解。下面是MySQL的基本架构图:从图上可以看到,MySQL总体上分为两大部分:Server层、存储引擎层。,其架构是插件式的,MySQL支持 InnoDB、MyISAM、 Memory 等多个存储引擎。现在最常用的存储引擎是 InnoDB,它从 MySQL 5.5.5 版本开 始成为了默认存储引擎。
2024-06-22 14:32:34
750
原创 类加载机制
每一个程序模块(OSGi中称为 Bundle)都有一个自己的类加载器,当需要更换一个Bundle时,就把Bundle连同类加载器一起换掉以实 现代码的热替换。在OSGi环境下,类加载器不再双亲委派模型推荐的树状结构,而是进一步发展为更 加复杂的网状结构,当收到类加载请求时,OSGi将按照下面的顺序进行类搜索:1)将以java.*开头的类,委派给父类加载器加载。2)否则,将委派列表名单内的类,委派给父类加载器加载。
2024-05-18 16:56:48
724
原创 垃圾收集器与内存分配策略
上面介绍了对象的回收和分配,垃圾回收器的分类和功能。下面会继续介绍虚拟机的相关知识,比如class文件,虚拟机工具。
2024-05-14 12:48:29
594
1
原创 java线程池
池化技术的思想主要是为了减少资源的消耗,提高资源的利用率。线程池一般用于执行多个不相关的耗时任务,不使用线程池时任务是顺序执行,使用线程池后可以通过处理多个任务。
2023-12-14 21:47:39
1025
1
原创 Sharding-JDBC(一)
Sharding-jdbc是ShardingSphere的其中一个模块,定位为==轻量级Java框架==,在Java的JDBC层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。适用于任何基于Java的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC。
2023-03-01 22:22:33
454
原创 使用@Builder遇到的坑
如果一个JavaBean只有AllArgsConstructor构造器,那么Mybatis在进行结果集映射时会使用另一种映射方式,Bean的属性类型,会根据映射顺序进行判断,而不是根据属性名进行判断,因此导致了映射异常。如上面这个异常一样,本来字段类型是匹配的,但因为会根据映射顺序进行判断,所以将BigDecimal类型的数据赋值给String类型了,将会抛出异常。如果JavaBean类使用@Builder注解,则默认只生成AllArgsConstructor构造器。不使用@Builder注解。
2023-02-27 11:56:12
295
原创 Spel表达式介绍
Spel表达式是什么?Spring表达式语言(简称SpEl,)是一个支持查询和操作运行时对象导航图功能的强大的表达式语言. 它的语法类似于传统EL,但提供额外的功能,最出色的就是函数调用和简单字符串的模板函数。简单来说就是可以帮助我们简化开发,减少一些逻辑、配置的编写。表达式语言给静态Java语言增加了动态功能。SpEL是单独模块,只依赖于core模块,不依赖于其他模块,可以单独使用。什么时候可以用到SpEL表达式?@Value注解可以通过的形式来获取application当中的配置,使用。
2023-02-26 12:38:50
471
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人