
MyBatis
文章平均质量分 90
MyBatis 相关
谈谈1974
火萎了,我也准备走了
展开
-
MyBatis-plus 代码生成器的使用
MyBatis-plus 提供了许多开箱即用的工具,其中就包括了将数据库表映射为实体类的代码生成器。该工具可以便捷快速地生成体现 ORM 思想的 Entity、Mapper 等模块代码,大大提高开发效率。原创 2023-02-08 22:15:00 · 626 阅读 · 0 评论 -
MyBatis-plus 批量插入的通用方法使用
文章目录1. MyBatis-plus 的批量保存方法2. MyBatis-plus 的批量插入方法2.1 通用批量插入方法 InsertBatchSomeColumn2.2 InsertBatchSomeColumn 的使用3. 批量插入 MySQL 数据库的坑3.1 MySQL 对非 NULL 字段插入 NULL 值的处理3.2 解决方法1. MyBatis-plus 的批量保存方法MyBatis-plus 中默认提供了一个批量保存数据到数据库的方法,也就是 IService#saveBatch()原创 2021-11-27 13:06:37 · 75031 阅读 · 1 评论 -
MyBatis-plus 条件构造器的实现原理
文章目录1. 前言2. 源码分析1. 前言使用 MyBatis-plus 进行数据查询的一个使用示例如下,其重要操作分为两个步骤,本文主要分析条件构造器构造 where 条件的原理构建条件构造器对象 LambdaQueryWrapper 用于保存 where 条件信息将条件构造器对象入参,调用 Mapper 对应方法查询数据库 @Override public Node getNodeById(Long id) { LambdaQueryWrapper<原创 2021-10-24 13:56:08 · 6512 阅读 · 1 评论 -
MyBatis-plus 转化处理 SQL 语句的源码分析
前言在 MyBatis-plus 自定义通用方法及其实现原理 中笔者介绍了 MyBatis-plus 添加通用方法的实现方式,但是其中还有一些细节需要澄清,下文笔者将详细分析MyBatis-plus 对 SQL 语句脚本的构建,以及将其嵌入MappedStatement 的过程MyBatis 使用 SqlSource 构建可执行的 SQL 语句1. MyBatis-plus 对 SQL 语句脚本的处理我们都知道 MyBatis-plus 干掉了繁琐的 XML 文件,使 MyBatis 框架原创 2021-09-29 16:54:20 · 7640 阅读 · 0 评论 -
MyBatis 拦截器 Interceptor 源码解析
文章目录1. MyBatis 拦截器 Interceptor 介绍2. Interceptor 实现源码分析2.1 拦截器 Interceptor 的注入2.2 拦截器 Interceptor 的应用2.3 拦截器 Interceptor 的生效1. MyBatis 拦截器 Interceptor 介绍MyBatis 提供了基于 Interceptor 的扩展机制,给使用方实现自定义逻辑留下了余地。笔者在 MyBatis @Intercepts 实现打印 SQL 语句 中介绍了拦截器的基本使用,实际原创 2021-09-20 17:56:18 · 1753 阅读 · 0 评论 -
MyBatis-plus 自定义通用方法及其实现原理
文章目录背景1. 自定义通用方法的实现1.1 新增 Mapper 方法与 SQL 语句脚本映射枚举1.2 新增 Mapper 方法的定义类1.3 新增 SQL 注入器1.4 新增配置类将 SQL 注入器添加到容器1.5 新增基类 Mapper2. 实现原理2.1 自定义 SQL 注入器的注入2.2 自定义 SQL 注入器的使用2.3 Mapper 操作数据库的实现背景项目中使用了读写分离的数据库访问框架,这个框架基于 Proxy 模式,对使用方屏蔽了主从数据库,查询时默认路由到从库。但是因为存在主从延迟原创 2021-09-19 13:25:47 · 8927 阅读 · 0 评论 -
MyBatis 缓存实现源码分析
文章目录1. 缓存分级2. 缓存实现1. 缓存分级2. 缓存实现原创 2021-03-15 14:40:52 · 445 阅读 · 0 评论 -
MyBatis-plus 源码解析
文章目录前言1. Mapper 对象映射至 SQL 语句2. Mapper 操作数据库的实现前言MyBatis-plus是完全基于MyBatis开发的一个增强工具,是在MyBatis的基础上做增强的框架,为简化开发、提高效率而生。它在MyBatis原本的框架上增加了很多实用性功能,比如乐观锁插件、字段自动填充功能、分页插件、条件构造器、sql 注入器等等。使用 MyBatis-plus 可以完...原创 2020-03-14 15:52:34 · 17351 阅读 · 22 评论 -
MyBatis 使用的注意事项
文章目录1. MyBatis 中#{}和${}的区别2. MyBatis-plus 的字段非 null 更新1. MyBatis 中#{}和${}的区别#{}: 解析为一个 JDBC 预编译语句(PreparedStatement )的参数标记符,一个 #{ } 代表一个占位符 ,可预防大部分 SQL 注入${}: 纯粹的 String 拼接,在动态 SQL 解析阶段将会进行变量替换,当需...原创 2020-03-14 10:00:55 · 611 阅读 · 0 评论 -
MyBatis @Intercepts 实现打印 SQL 语句
文章目录1. @Intercepts 简介2. 使用 @Intercepts 实现打印 SQL 语句1. @Intercepts 简介2. 使用 @Intercepts 实现打印 SQL 语句原创 2020-03-05 22:00:27 · 8604 阅读 · 0 评论 -
MyBatis 分表实践
文章目录1. 动态创建表2. 插入数据1. 动态创建表2. 插入数据使用@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "FuiId") 将表生成的主键回填到 bean 对象对应属性的时候需注意,在方法入参为多个时,keyProperty需要指定为对应入参的对应属性,形式为参数名.id。一般报错会有如下信息,...原创 2020-02-25 13:34:53 · 3433 阅读 · 0 评论 -
MyBatis Mapper 操作数据库源码流程总结
Mybatis Mapper 原理Mybatis 中 Mapper 与 xml文件中配置的SQL语句是一种对应关系,二者通过动态代理联系起来.XML 中的配置会被解析生成 MappedStatement对象,这个对象封装了XML当中一个标签的所有信息,比如下面<select id=“selectBlog” resultType=“Blog”>select * from Blog...原创 2019-08-08 16:14:31 · 1629 阅读 · 1 评论