首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
水煮MyBatis
大饭盒
创建于2023-06-08
订阅专栏
介绍ORM框架-MyBatis的技术内核和使用技巧
等 38 人订阅
共28篇文章
创建于2023-06-08
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
水煮MyBatis(二八)- 级联插件【核心源码】
上一章里说了,现实情况里,很难抽出大段完整时间来用于文章输出,只能切成小章来逐步完成既定目标,事实就是这样。 好了话不多说,这是级联插件的最后一个小章,也是mybatis系列的最后一个篇章。
水煮MyBatis(二七)- 级联插件【查询组件和自定义注解】
在mybatis的设定里,如果Mapper要执行一个sql,要么使用xml与Mapper进行映射;要么使用@Select等注解提供sql语句。但是在级联插件里,我们需要执行的查询语句,是动态生成的..
水煮MyBatis(二六)- 级联插件【数据结构】
稍有经验的后端开发者应该都有类似的小烦恼,在使用mybatis的时候,会比较羡慕JPA里的级联查询,使用类似@OneToMany之类的注解就能查询到与之关联的数据,非常方便。而在mybatis里...
水煮MyBatis(二五)- 插件案例【全局数据权限】
从这篇文章开始,之后会以两个插件的例子来深入了解一下mybatis的插件功能。 数据权限的应用场景:在后台管理系统里面,需要针对单个用户来限制其访问的数据范围,让不同的用户看到不同的数据。
水煮MyBatis(二四)- 插件介绍和底层逻辑
又来更新了,上半年就准备写这个知识点了,因为参与一个JAM活动而耽搁了一段的时间,久到忘记这个系列的存在。剩下的几个章节里,我会详细讲一下插件的写法,然后展开介绍一下我之前写过的两个插件。
水煮MyBatis(二三)- 关于ID策略的"BUG"
上一篇中,有意忽略了@GeneratedValue注解里的generator参数,主要有两层原因: - 使用频率不高; - 与预期效果有差异;
水煮MyBatis(二二)- 细说一下ID生成策略
数据库表唯一值的生成策略,一开始就备受关注,从自增到UUID,从单机到分布式,业务千奇百怪,策略也是层出不穷。
水煮MyBatis(二一)- 动态SQL:@Provider
Mybatis里的动态SQL,估计用到的同学不是很多,毕竟在xml文件中定义sql语句的方式,已经可以满足绝大部分的开发需求,方便又简单。没有痛点,也就少了动力。
水煮MyBatis(二十)- 事务之内共享SqlSession
今天更新一个小知识点,也是初学者比较容易遗漏的问题,那就是如果开启事务,sqlSession在事务周期之内,都是共享的,方便批量提交和回滚,实现数据一致性。
水煮MyBatis(十九)- 自定义类型处理器
Java对象和数据库表字段之间的映射,Mybatis内置了一系列默认的处理类,比如LongTypeHandler、DataTypeHandler等,绝大多数情况下都可以让开发人员直接读写数据...
水煮MyBatis(十八)- 自定义缓存实现
到此为止,Mybatis的核心特性基本介绍的差不多了,后面会陆续更新一些扩展相关的技术点。 之前在二级缓存的章节中提到,可以自定义实现缓存接口,用于灵活处理业务需求,下面一起来看看如何实现吧。
水煮MyBatis(十七)- 延迟加载(下)
前面介绍了一些延迟加载功能里的基本组件和相应的使用方式,这一章主要从源码角度来分析其是如何实现此功能的。
水煮MyBatis(十六)- 延迟加载(上)
前言 延迟加载,也叫懒加载,是一种对象关联关系的加载方式,被设计用来避免一些无谓的系统性能损耗。毕竟在正常情况下,一个关联对象只有被访问的时候,才有必要去显示...
水煮MyBatis(十五)- 聊聊缓存里的脏数据
前面章节提到,Mybatis的一级缓存是默认开启的,毕竟在绝大多数情况下,一级缓存对业务系统有着正向作用,所以这个默认设置是非常合理的。当然,这都是针对大部分正常情况而言,下面我们说说不正常的。
水煮MyBatis(十四)- 细说缓存刷新机制
连续写几个大章节,乏了,这一章写点轻松的。什么是tcm,其实在上一章有提到,是CachingExecutor的一个类属性【TransactionalCacheManager 】,主要用来处理二级缓存.
水煮MyBatis(十三)- 二级缓存
相比一级缓存而言,二级缓存的实现类就很丰富了,还支持开发者自定义缓存实现。上一章提到过缓存执行器:CachingExecutor,就是专门为二级缓存准备的。默认的二级缓存驱除策略:LruCache。
水煮MyBatis(十二)- 一级缓存
缓存是Mybatis里比较有意思的一个特性,一定程度上可以提高查询效率,降低数据库I/O压力。应对的场景是这样:在短时间内,频繁的反复执行相同的查询语句...
水煮MyBatis(十一)- 事务
SpringManagedTransaction:看名称就知道,在Spring体系中一般使用此实现。代理 JDBC 连接的生命周期。 它从 Spring 的事务管理器中获取连接,结束后归还。
水煮MyBatis(十)- 主流数据源接入
数据源接口是在JDK里定义的,在我看来,并不是Mybatis关心的内容,它的核心是代理数据库I/O输入输出。
水煮MyBatis(九)- 获取数据库链接的细节
接上一章继续聊聊链接的问题,之前把mybatis自带的三种数据源做了个大概是说明,还留了个小任务:池化数据源如何获取链接。
下一页