- 博客(10)
- 收藏
- 关注
原创 可能是最漂亮的Spring事务管理详解
事务是逻辑上的一组操作,要么都执行,要么都不执行。相信大家应该都能背上面这句话了,下面我结合我们日常的真实开发来谈一谈。我们系统的每个业务方法可能包括了多个原子性的数据库操作,比如下面的 savePerson() 方法中就有两个原子性的数据库操作。这些原子性的数据库操作是有依赖的,它们要么都执行,要不就都不执行。事务能否生效数据库引擎是否支持事务是关键。比如常用的 MySQL 数据库默认使用支持事务的 innodb引擎。但是,如果把数据库引擎变为 myisam,那么程序也就不再支持事务了!
2023-04-15 12:30:14
84
原创 Spring事务传播原理及数据库事务操作原理
在并发执行的情况下,多个 事务可能同时访问同一数据,为了保证数据的一致性,需要对数据 进行加锁。锁分为共享锁和排他锁,共享锁允许多个事务同时读取 数据,但不允许修改数据,排他锁则只允许一个事务同时访问数据。在事务执行过程中,数据 库会将所有的修改操作记录在日志中,包括修改前的数据和修改后 的数据。所谓事务的传播行为是指,如果在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行行为。当事务存在嵌套关系时,子事务与父事务的关系以及回滚的影响范围(传播-回滚的传播)
2023-04-15 12:25:40
107
原创 我用 ChatGPT 读 Vue3 源码
ChatGPT 最近十分火爆,今天我也来让 ChatGPT 帮我阅读一下 Vue3 的源代码。都知道 Vue3 组件有一个 setup函数。那么它内部做了什么呢,今天跟随 ChatGPT 来一探究竟。ChatGPT 很强大,也很笨,毕竟它不联网,且只有 2021 年以前的数据。可用来帮助我们读一下晦涩的源码还是可以的,但也只能辅助作用,还需要自己的思考。
2023-04-15 11:45:17
274
原创 【无标题】
有道是-工欲善其事,必先利其器。老白这次想重新深入学习下Elasticsearch相关的知识。但是Elasticsearch和我们的数据库是一样的都需要客户端才可以看到相关数据。网上推荐的五种客户端:1.Elasticsearch-Head ,弃用。Elasticsearch-Head插件在5.x版本之后已不再维护,界面比较老旧。2.cerebro,弃用。原因:据传该插件不支持ES中5.x以上版本。3.kinaba,弃用。功能强大,但操作复杂,以后可以考虑。4.Dejavu,弃用。
2023-01-30 21:22:00
30
原创 会议详情
会议详情`1.impl层代码如下(示例):impl层会议详情# @Override public SwMeetingDetailVo swMeetingDetail(String meetingId) { //检查会议是否存在,根据主键查询 SwMeeting swMeeting = swMeetingMapper.selectByPrimaryKey(meetingId); if(swMeeting==null || DeleteFlag
2022-03-27 14:22:03
117
原创 【无标题】
mybatis-generator中mapper`1.mapper代码如下(示例):public interface SwMeetingMapper { long countByExample(SwMeetingCriteria example);//根据条件删除 int deleteByExample(SwMeetingCriteria example); //根据主键删除 int deleteByPrimaryKey(String id);//插入 i
2022-03-26 16:29:13
284
原创 Column count doesnt match value count at row 1
Column count doesn't match value count at row 1相信很多用mysql或者JDBC的朋友遇到这个问题我们可以看到出现了Column count doesn’t match value count at row 1的提示,我们把values里的单引号改为双引号可以运行...
2020-05-27 19:56:44
655
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人