MybatisPlus
文章平均质量分 87
MybatisPlus从0到1教程,包含BaseMapper和IService所以方法详解
L.S.L_
SAY LESS
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MybatisPlus多数据源和MybatisX插件
本文介绍了MyBatis-Plus多数据源配置及MyBatisX插件的使用。主要内容包括:1)多数据源场景模拟,通过创建两个数据库(mybatis_plus和mybatis_plus_1)演示纯粹多库模式;2)详细说明代码实现步骤,包括数据库创建、依赖导入、yml配置及注解指定数据源;3)测试用例展示如何通过不同数据源获取用户和商品数据;4)简要介绍MyBatisX插件功能,说明其在处理复杂SQL和多表联查时的优势。文章提供了从配置到测试的完整流程,适用于多种数据源场景的实现。原创 2026-03-28 22:42:23 · 183 阅读 · 0 评论 -
MybatisPlus——代码生成器
MyBatis-Plus代码生成器可以快速生成基于数据库表的全套Java代码,包括实体类、Mapper接口、Service层和Controller层。通过FastAutoGenerator配置数据源、包路径和表名等参数,能够自动生成包含@TableName注解的实体类、继承BaseMapper的Mapper接口、实现IService的服务层以及基础控制器。生成器支持自定义输出目录、表前缀过滤,并提供了Freemarker模板引擎选项。该工具显著提升了开发效率,使开发者只需关注业务逻辑实现,大幅减少了重复的C原创 2026-03-27 22:41:29 · 149 阅读 · 0 评论 -
MybatisPlus——通用枚举
摘要:本文介绍了MyBatis-Plus通用枚举的实现方法。通过@EnumValue注解标记枚举属性与数据库字段的映射关系,实现自动类型转换(如SexEnum.MALE↔1)。具体步骤包括:1)创建带@EnumValue的枚举类;2)配置枚举扫描路径;3)在实体类中使用枚举字段。该方法提高了代码可读性(SexEnum.MALE比1更直观)和安全性(避免非法值),同时减少了手动转换的工作量。测试案例验证了枚举值能正确存入数据库并自动转换。原创 2026-03-27 22:37:27 · 439 阅读 · 0 评论 -
MybatisPlus条件构造器(下)
本文介绍了MyBatis-Plus中QueryWrapper和LambdaQueryWrapper的使用方法。主要内容包括:1. 基础条件构建(like、between、isNotNull等)及多条件AND/OR连接;2. 排序、删除、子查询等操作实现;3. 条件优先级控制,通过and/or的lambda表达式实现条件分组;4. 可选条件处理,使用condition参数简化代码;5. LambdaQueryWrapper通过方法引用避免字段名拼写错误;6. UpdateWrapper实现更新操作。重点说明了原创 2026-03-26 22:53:43 · 529 阅读 · 0 评论 -
MybatisPlus条件构造器(上)
MyBatis-Plus条件构造器提供了灵活的SQL构建方式,主要包括QueryWrapper(查询/删除)和UpdateWrapper(更新)两大类。Wrapper是顶级抽象类,其子类支持链式调用和条件拼接。QueryWrapper提供eq、like、in等条件方法,支持动态条件过滤;UpdateWrapper额外支持set方法设置更新值。Lambda版本(LambdaQueryWrapper/LambdaUpdateWrapper)通过方法引用避免硬编码字段名。构造器支持AND/OR逻辑分组、条件参数动原创 2026-03-26 22:48:26 · 345 阅读 · 0 评论 -
MybatisPlus常用注解(下)
摘要:本文介绍了MyBatis-Plus中属性名与字段名的映射规则及两种处理方式(驼峰转下划线自动转换和@TableField注解)。详细说明了逻辑删除的实现方法,包括注解配置和状态值自定义。重点讲解了字段自动填充功能,通过@TableField的fill属性和自定义MetaObjectHandler实现创建时间、更新时间等字段的自动填充。同时对比了代码层自动填充与数据库时间戳规则的优先级关系,指出代码层配置会覆盖数据库规则。这些功能可有效减少冗余代码,提升开发效率。原创 2026-03-25 10:04:55 · 702 阅读 · 0 评论 -
MybatisPlus常用注解(上)
MyBatis-Plus默认规则与主键策略总结 MyBatis-Plus默认将实体类名作为表名,主键列默认为"id"并使用雪花算法生成ID。若表名与类名不一致,可通过@TableName注解或全局配置table-prefix解决。主键不一致时需使用@TableId(value="字段名")指定,其type属性支持ASSIGN_ID(默认雪花算法)和AUTO(数据库自增)等策略。全局配置可在yml文件中设置主键策略和表前缀。针对大数据场景,介绍了水平分表(取模/分段)和原创 2026-03-25 10:01:25 · 352 阅读 · 0 评论 -
IService——查询(下)
本文介绍了MyBatis-Plus框架中的BaseMapper获取、实体类获取以及链式查询和更新操作。主要内容包括:1)通过getBaseMapper()获取Mapper接口实例,使用getEntityClass()获取实体类信息;2)链式查询原理及两种实现方式(普通字符串方式和Lambda方法引用方式),通过query()和lambdaQuery()方法实现条件链式拼接;3)链式更新操作通过update()和lambdaUpdate()方法实现条件更新;4)saveOrUpdate方法实现条件更新或新增操原创 2026-03-24 23:02:54 · 378 阅读 · 0 评论 -
IService——查询(上)
本文介绍了MyBatis-Plus中常用的查询方法,主要包括: 单条查询:通过id查询(getById)、条件查询(getOne)及结果转换(getObj/getMap) 批量查询:通过id列表(listByIds)或字段条件(listByMap)批量获取数据 列表查询:无条件查询(list)或带条件查询(list) 分页查询:支持实体类(page)和Map(pageMaps)两种返回格式 特殊查询:只返回第一列数据(listObjs)及其类型转换 所有方法均支持条件构造器(Wrapper)进行灵活查询,并原创 2026-03-24 22:54:27 · 515 阅读 · 0 评论 -
IService——修改
本文介绍了MyBatis-Plus中常用的几种数据更新方式:1. 根据ID修改(updateById),通过实体对象指定更新字段;2. 根据条件修改,包括使用UpdateWrapper设置更新内容和条件(update),或结合实体类与Wrapper(update(entity, wrapper));3. 批量更新方法(updateBatchById),支持按ID集合或分批次更新;4. 修改插入(saveOrUpdate),根据主键存在与否自动选择更新或插入操作。每种方法均提供了对应的代码示例,展示了不同场景原创 2026-03-23 09:58:11 · 214 阅读 · 0 评论 -
IService——删除
本文摘要:MyBatis-Plus提供了多种删除数据的方式,包括根据ID删除、根据条件删除和批量删除。根据ID删除包括普通删除、是否填充删除和实体ID删除;根据条件删除支持columnMap和queryWrapper两种方式;批量删除分为带IN语句和不带IN语句两种形式,后者通常通过循环逐个删除实现。此外,还支持按批次大小删除和是否填充的配置选项,其中填充功能可触发自动填充逻辑,适用于逻辑删除等场景。所有批量删除操作默认由Spring事务管理保证原子性。原创 2026-03-23 09:44:19 · 986 阅读 · 0 评论 -
IService——使用和新增
摘要:MyBatisPlus的IService接口封装了通用的CRUD操作,提供save、saveBatch等方法实现单条/批量数据插入和修改。通过泛型设计适配不同实体类,方法命名遵循get/remove/list/page等规范。ServiceImpl实现类持有Mapper实例并实现复杂逻辑,开发者只需继承即可复用基础CRUD功能。批量操作支持指定批次大小,避免SQL过长问题。saveOrUpdateBatch方法自动判断执行插入或更新操作,简化开发流程。原创 2026-03-19 16:48:17 · 383 阅读 · 0 评论 -
5 MySQL驱动类选择与数据库连接 URL 时区配置
摘要:本文详细介绍了Spring Boot项目中MySQL驱动类选择与数据库连接URL配置的规范做法。对于驱动类,Spring Boot 2.0以下使用com.mysql.jdbc.Driver,2.1及以上使用com.mysql.cj.jdbc.Driver。MySQL 8.0连接URL必须指定时区参数(如serverTimezone=Asia/Shanghai),而5.7版本则不需要。同时建议添加字符编码参数(characterEncoding=utf-8)确保中文兼容。文章还分析了不同版本驱动与MyS原创 2026-03-19 16:34:33 · 682 阅读 · 0 评论 -
BaseMapper ——修改和查询
本文摘要: MyBatis-Plus提供了多种数据操作方法:1)更新操作包括根据ID修改(自动忽略null值字段)和条件更新;2)查询操作支持ID查询、批量查询、条件查询、分页查询等,其中条件查询可通过QueryWrapper构建复杂条件;3)分页查询需配置分页插件,返回包含分页信息和数据的IPage对象。框架默认安全策略会忽略null值更新,防止数据误删。各种查询方法可灵活选择返回实体对象或Map结构,满足不同场景需求。分页功能需显式配置PaginationInterceptor才能生效。原创 2026-03-19 16:30:40 · 834 阅读 · 0 评论 -
BaseMapper——新增和删除
摘要:本文介绍了MyBatis-Plus中BaseMapper的基本CRUD操作,重点解析了新增和删除功能。新增操作通过insert()方法实现,默认使用雪花算法生成ID;删除操作提供多种方式:根据ID删除(deleteById)、根据实体删除(deleteById)、根据条件删除(deleteByMap/delete)以及批量删除(deleteBatchIds)。其中详细说明了Serializable参数类型的设计原因及其通用性优势,并解释了长整型ID需要加"L"的注意事项。这些方法都原创 2026-03-19 16:18:09 · 438 阅读 · 0 评论 -
MybatisPlus插件
MyBatis-Plus分页与乐观锁实现指南 分页功能: 需配置PaginationInnerInterceptor拦截器并指定数据库类型 使用IPage接口实现类(如Page)传递分页参数 支持自动SQL和自定义SQL的分页处理 乐观锁实现: 数据库添加version字段,实体类添加@Version注解 配置OptimisticLockerInnerInterceptor插件 更新时自动检查版本号,防止并发修改冲突 更新失败时可重试机制获取最新数据 两种功能都通过MybatisPlusIntercepto原创 2025-12-08 23:19:49 · 644 阅读 · 0 评论 -
mybatisplus入门案例
本文介绍了使用MyBatis-Plus开发SpringBoot项目的入门案例。开发环境采用IDEA2021、JDK8+、Maven3.6.3和MySQL8.0,框架版本为SpringBoot2.7.6和MyBatis-Plus3.5.1。主要内容包括:创建数据库表结构,初始化SpringBoot项目并配置相关依赖,使用Lombok简化实体类开发,配置数据源和日志输出,以及通过继承BaseMapper实现基础CRUD操作。特别说明了IDEA中Mapper接口的注入报错问题及解决方案,推荐安装MyBatisX插原创 2025-12-08 23:10:58 · 1139 阅读 · 0 评论
分享