MyBatis-Plus
文章平均质量分 82
MyBatis-Plus(简称 MP)作为 MyBatis 的国产增强工具,在保留 MyBatis 灵活性的同时,通过“无侵入”设计提供了强大的 CRUD 封装、代码生成、分页插件、逻辑删除等开箱即用的功能,极大提升了 Java 持久层开发效率。本专栏从零开始,系统讲解 MyBatis-Plus 的
龙茶清欢
人生百年,终归尘土;心有所向,纵死不虚。人生的意义,不是被赋予的,而是在一次次选择中锻造出来的。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
代码生成器项目目录结构完整说明文档
代码生成器项目结构摘要 本项目采用前后端分离架构,包含SpringBoot后端和Vue3+TS前端。核心目录说明: 后端结构:采用标准Maven项目布局,包含控制器、服务层、实体类等,特别设计了templates目录存放Freemarker代码模板(Java/TS/Vue等) 前端结构:Vue3标准项目布局,包含API调用、状态管理、组件库等模块 核心资产:所有代码模板存放在backend/resources/templates目录下,包含Java实体类、Mapper、Service等后端模板,以及Vue组原创 2025-10-07 11:24:49 · 565 阅读 · 0 评论 -
使用 @Mapper 注解后是否还需要 @MapperScan 注解吗?
如果每个Mapper接口都显式添加了@Mapper注解,通常不需要再使用@MapperScan。@Mapper会单独标记每个接口为MyBatis Mapper,而@MapperScan用于批量扫描注册。两者可以共存但不推荐混用,最佳实践是统一采用显式@Mapper(更清晰)或统一使用@MapperScan(更简洁)。企业项目中推荐每个接口加@Mapper,避免扫描遗漏问题,符合显式优于隐式的工程原则。原创 2025-10-07 03:36:04 · 424 阅读 · 0 评论 -
global-exception-handler.java.ftl 模板文件参考示例
本文介绍了一个Java全局异常处理器的设计实现,通过@RestControllerAdvice注解统一处理控制器层异常。处理器遵循"具体到通用"的优先级顺序,分别处理业务异常、请求体校验异常、表单校验异常和路径参数校验异常,最终以统一的ApiResponse格式返回。设计中强调安全原则(不返回堆栈信息)、业务友好(自定义错误码)和最佳实践(仅返回首个校验错误),同时保持各异常类型的独立处理逻辑。该方案适用于企业级应用,实现异常处理的标准化和安全化。原创 2025-10-07 00:23:20 · 433 阅读 · 0 评论 -
mybatis-plus-config.java.ftl 模板文件参考示例
本文详细解析了MyBatis-Plus配置模板文件mybatis-plus-config.java.ftl的核心功能与实现要点。该配置类通过@Configuration注解声明,主要包含两大核心功能:1) 注册MyBatis-Plus插件链(必须首位添加分页插件),支持MySQL等多种数据库方言;2) 实现自动填充处理器,通过MetaObjectHandler接口为创建时间、更新时间等字段提供统一填充策略。文章强调分页插件必须放在首位,并详细说明了自动填充的触发时机与字段配置规则,同时指出代码配置会覆盖YA原创 2025-10-07 00:22:24 · 297 阅读 · 0 评论 -
dto.java.ftl 和 vo.java.ftl 两个核心数据传输对象模板文件2
企业级分层架构数据传输对象模板 摘要: 本文提供了标准化的DTO和VO模板文件,用于实现前后端数据安全交互。DTO模板用于接收前端请求参数,排除主键和系统字段,包含字段校验注解;VO模板用于返回前端数据,支持字段扩展和格式化处理。两个模板均采用Lombok简化代码,包含详细中文注释,遵循RESTful API最佳实践,确保数据安全性和语义清晰性。模板自动生成,建议在Service层进行DTO/Entity/VO的转换处理。 (字数:149字)原创 2025-10-07 00:20:16 · 258 阅读 · 0 评论 -
dto.java.ftl 和 vo.java.ftl 两个核心数据传输对象模板文件1
本文提供了两个符合企业级RESTful API设计规范的Java模板文件,分别用于请求参数(DTO)和响应数据(VO)。DTO模板包含完整的OpenAPI 3.0注解和JSR-303参数校验,强调与业务语义一致、不暴露数据库结构等原则;VO模板则注重响应数据结构定义,要求隐藏敏感信息、面向前端业务命名。两个模板均集成SpringDoc注解,可直接用于代码生成器,并包含详尽的中文注释说明设计目标和关键原则,适用于MyBatis-Plus等框架。原创 2025-10-07 00:19:26 · 316 阅读 · 0 评论 -
vite.config.ts.ftl(Vite 项目配置模板参考示例)
Vite 配置模板摘要 核心价值 标准化:统一团队项目配置,避免重复错误 安全性:集成CSP、安全头等防护措施 性能优化:构建优化、代码分割、资源压缩 环境适配:支持多环境差异化配置 关键功能 基础配置:路径别名、环境变量管理 开发体验:代理配置、HTTPS支持、热更新 构建优化:Tree Shaking、预加载、分析工具 安全防护:内容安全策略、敏感信息过滤 企业级实践 环境变量分级管理(.env文件) 集成包体积分析插件 自动生成版本信息和构建时间 完善的开发服务器配置 150字摘要,涵盖模板核心价值、原创 2025-10-07 00:17:48 · 293 阅读 · 0 评论 -
table.vue.ftl 和 form.vue.ftl 两个核心前端页面模板文件参考示例2
一个优秀的前端组件,不是功能越多越好,而是越准越稳。标准、安全、可复用的列表页。智能、自适应、零配置的表单页。✅复制此模板,你的前端项目将拥有业界标准的 CRUD 组件。✅从此,你的团队不再为“这个字段怎么显示”、“这个按钮怎么写”而争论。✅你的代码,就是最好的开发手册。原创 2025-10-07 00:16:25 · 296 阅读 · 0 评论 -
table.vue.ftl 和 form.vue.ftl 两个核心前端页面模板文件参考示例1
以下是两个符合现代Vue 3企业级开发规范的核心页面模板摘要: 列表页模板(table.vue.ftl) 采用Element Plus组件实现分页查询表格 包含动态生成的查询表单(自动适配String/Integer/Boolean类型字段) 表格列自动处理时间格式化、布尔值转换 集成权限控制(v-permission)、加载状态、分页功能 严格类型检查,与后端API完全对齐 表单页模板(form.vue.ftl) 提供创建/编辑功能统一表单 自动生成字段校验规则(必填、格式等) 集成提交状态管理、防重复提原创 2025-10-07 00:15:27 · 396 阅读 · 0 评论 -
api.ts.ftl 和 types.ts.ftl 模板文件参考示例2
本文档提供了两个企业级TypeScript模板文件,用于生成安全的前端API客户端和类型定义。api.ts.ftl基于Axios实现类型安全的HTTP请求方法,包含分页查询、增删改查等标准CRUD操作,所有方法均有详细JSDoc注释。types.ts.ftl定义精确的类型接口,确保前后端数据交互零歧义。两个模板均采用现代前端开发规范,支持TypeScript类型检查,提供完整的中文注释,降低团队沟通成本。模板生成的文件严格遵循前后端分离架构,确保开发效率和代码质量。原创 2025-10-07 00:13:42 · 794 阅读 · 0 评论 -
axios-config.ts.ftl(Axios 全局配置模板文件参考)
Axios全局配置模板(axios-config.ts.ftl)说明 该模板提供标准化的Axios配置,确保API调用的可靠性、安全性和一致性。核心优势包括:避免重复配置、统一错误处理、集成安全防护(如自动添加JWT Token)、支持环境差异化(开发/生产环境)。通过请求/响应拦截器实现认证头注入、敏感信息过滤、错误分级处理(网络/HTTP/业务错误)及调试日志。模板设计强调可维护性,集中管理基础配置、认证逻辑和异常处理,显著提升开发效率并降低维护成本。原创 2025-10-07 00:13:05 · 1029 阅读 · 0 评论 -
api.ts.ftl 和 types.ts.ftl(TypeScript 模板参考示例1)
本文提供了两个TypeScript模板文件,用于前端与Java后端(基于MyBatis-Plus + SpringDoc)协同开发: types.ts.ftl - 类型定义模板,包含与后端DTO/VO严格对齐的接口定义,支持类型安全、OpenAPI规范,并带有详细中文注释。 api.ts.ftl - API请求封装模板,基于Axios实现类型安全的HTTP请求,与后端Controller路径对齐,集成统一错误处理。 两模板均遵循现代前端工程化规范,支持自动生成类型安全的前端API客户端,适用于代码生成器扩展原创 2025-10-06 22:13:22 · 720 阅读 · 0 评论 -
service.java.ftl(Service 接口模板标准规范版2)
MyBatis-Plus企业级开发模板摘要: 本文提供了基于MyBatis-Plus的最佳实践模板,包含Service接口和实现类两个核心文件。模板严格遵循企业级开发规范,具有以下特点: 架构规范: 接口与实现分离(SOLID原则) 继承MyBatis-Plus的IService标准接口 默认事务控制(@Transactional) 方法规范: 标准CRUD方法自动继承 自定义业务方法命名规范(动词+名词) 参数校验注释明确 返回值类型清晰定义 注释规范: 每个方法提供详细中文注释 参数非空说明 异常场景描原创 2025-10-06 22:11:14 · 373 阅读 · 0 评论 -
service.java.ftl(Service 接口模板参考示例1)
本文提供两个基于MyBatis-Plus的企业级Java后端开发模板:service.java.ftl(Service接口)和service-impl.java.ftl(Service实现类)。这两个模板遵循Spring分层架构,包含详细中文注释,支持高可维护性与扩展性。Service接口继承MyBatis-Plus的IService接口,自动获得通用CRUD方法,同时可扩展自定义业务方法;Service实现类继承ServiceImpl,通过LambdaQueryWrapper构建动态查询条件,并支持事务控原创 2025-10-06 22:10:13 · 349 阅读 · 0 评论 -
mapper.java.ftl(Mapper 接口模板标准规范版2)
MyBatis-Plus最佳实践代码生成模板 摘要:提供MyBatis-Plus代码生成器的标准模板文件,包含mapper.java.ftl和mapper.xml.ftl两个核心组件。模板遵循企业级开发规范,具有以下特点: 接口与XML分离设计 继承BaseMapper自动获得CRUD方法 强制使用@Mapper注解 包含详细中文注释说明 支持自定义SQL片段 方法命名规范统一 参数校验和异常处理明确 预留扩展方法示例 模板严格遵循MyBatis-Plus最佳实践,确保生成的代码具有规范性、可维护性和扩展性原创 2025-10-06 22:09:13 · 303 阅读 · 0 评论 -
mapper.java.ftl(Mapper 接口模板参考示例1)
摘要: 本文提供了两个MyBatis-Plus代码生成模板文件,遵循企业级开发规范: Mapper接口模板(mapper.java.ftl): 继承BaseMapper获得基础CRUD功能 包含详细中文注释和使用说明 提供自定义查询方法示例 强调类型安全和命名规范 Mapper XML映射文件模板(mapper.xml.ftl): 仅建议复杂SQL场景使用 包含SQL注入防护规范 提供动态SQL和分页查询示例 基础字段列表复用方案 包含多表关联、批量操作等扩展建议 两个模板均适配MyBatis-Plus G原创 2025-10-06 22:08:06 · 346 阅读 · 0 评论 -
api-response.java.ftl 统一响应结果封装类模板标准规范版
本文介绍了统一API响应封装类ApiResponse.java的设计与实现。该类的核心目标是规范API返回格式,通过状态码、消息和数据三元组消除前后端协作歧义。关键设计包括:使用基础类型int定义状态码,避免空指针风险;通过@JsonInclude优化序列化性能;采用泛型<T>确保类型安全;使用Instant类型记录UTC时间戳以解决时区问题。此外,类中详细说明了状态码规范、安全原则(如避免敏感信息泄露)和国际化考虑,并通过私有构造函数强制使用工厂方法创建实例,确保对象状态一致性。该设计既提升了原创 2025-10-06 22:07:09 · 399 阅读 · 0 评论 -
entity.java.ftl 实体类模板标准规范版
摘要 本文提供了符合MyBatis-Plus最佳实践的企业级实体类模板,包括entity.java.ftl和base-entity.java.ftl,用于自动生成规范的Java实体类。核心特性包括: 使用Lombok减少样板代码; 集成MyBatis-Plus注解(表名、主键、字段映射等); 自动填充时间字段; 支持乐观锁和逻辑删除; 继承基类复用公共字段; 完善的字段注释和警告提示。 base-entity.java.ftl定义公共父类,包含主键、时间戳等通用字段;entity.java.ftl生成具体业原创 2025-10-06 22:06:01 · 755 阅读 · 0 评论 -
base-entity.java.ftl 通用基类实体模板
本文提供了两个企业级 Java 实体类模板,遵循 MyBatis-Plus 最佳实践: 通用基类 BaseEntity 包含公共字段(创建时间、更新时间、逻辑删除标识),使用 MyBatis-Plus 注解实现自动填充和逻辑删除功能; 具体业务实体类模板继承基类,通过注解映射数据库表结构,支持主键策略、字段映射等特性。两个模板均严格遵循分层架构原则,不包含 OpenAPI 注解,避免持久层与 API 层耦合,并配有详尽的中文注释说明设计目标和关键特性。原创 2025-10-06 22:04:49 · 435 阅读 · 0 评论 -
controller.java.ftl 模板文件参考示例3
✅你不是在写 Controller,你是在编写一份“可执行的 API 文档”✅你不是在生成代码,你是在构建团队的“协作契约”这套模板,已在多个大型企业项目中稳定运行,让开发效率提升 80%+,Bug 率下降 60%。🚀从此,你的代码生成器,不再只是工具,而是团队的生产力引擎。✅复制此模板,你已拥有企业级代码生成的终极解决方案。原创 2025-10-06 22:03:02 · 1010 阅读 · 0 评论 -
controller.java.ftl 模板文件参考示例2
摘要:本文展示了一个基于FreeMarker模板的Java控制器代码生成模板(controller.java.ftl),该模板采用统一响应格式ApiResponse,使用@Resource替代@Autowired进行依赖注入。模板包含标准CRUD方法的实现,整合了Swagger/OpenAPI 3.0注解,提供详细的API文档支持,包括查询单条记录、获取所有列表、新增和更新操作,每个方法都遵循统一的响应格式和错误处理机制。原创 2025-10-06 22:01:09 · 352 阅读 · 0 评论 -
controller.java.ftl 代码生成器模板文件参考示例
代码生成器改造总结 响应格式改造 自定义 ApiResponse<T> 替代 R<T>,包含 code、msg、data 字段 提供静态工厂方法 ok()/fail() 简化响应构建 保持 JSON 序列化能力,与 @RestController 兼容 依赖注入改造 所有 @Autowired 替换为 @Resource 注解 符合项目规范,避免字段注入的潜在问题 模板调整 保留 OpenAPI 3.0 注解支持 更新注释说明响应格式变化 确保生成代码风格统一 优势 响应结构更符合项原创 2025-10-06 21:57:10 · 371 阅读 · 0 评论 -
MyBatis-Plus-Generator 详细使用指南:基于 Spring Boot + Freemarker 模板引擎的代码生成器
MyBatis-Plus-Generator是基于MyBatis-Plus的代码自动生成工具,可自动生成实体类、Mapper接口、Service层和Controller层代码。它支持多种模板引擎如Freemarker,具有高度可配置性,能自定义包名、类名等,大幅提升开发效率,减少人工错误。使用时需配置Java 8+、Spring Boot 2.7+/3.x等环境,通过核心类AutoGenerator实现代码生成,适用于CRUD密集的业务模块开发。原创 2025-10-02 13:24:32 · 823 阅读 · 0 评论 -
Mybatis、MyBatis-Plus 深度分页性能问题与游标分页解决方案
MyBatis深度分页性能问题及优化方案 MySQL的LIMIT offset, size在深度分页时(如LIMIT 1000000, 20)需扫描前1,000,020条数据,导致性能随offset增加而骤降。主要问题包括:内存/CPU消耗增大、I/O压力上升、索引效率降低。 优化方案: 游标分页:基于最后ID查询(WHERE id > lastId LIMIT size),时间复杂度O(1); 延迟关联:先通过覆盖索引获取ID再联表; 限制业务逻辑:如最大页码控制; 避免COUNT查询:对超大表使用原创 2025-10-02 11:09:26 · 479 阅读 · 0 评论 -
符合企业级开发规范的 Spring Boot + MyBatis-Plus 标准 MVC 结构完整示例
企业级Spring Boot MVC示例摘要 本文展示了一个符合企业开发规范的Spring Boot+MyBatis-Plus标准MVC结构,包含以下核心组件: 分层架构:Controller-Service-Mapper标准分层 统一封装: 统一返回结果类(Result) 请求参数DTO(UserCreateDTO/UpdateDTO/QueryDTO) 实体类:User实体定义数据库映射 校验机制:JSR-303参数校验 分页查询:通过QueryDTO实现条件查询 命名规范: 包结构清晰划分 类名/方法原创 2025-09-26 00:56:12 · 856 阅读 · 0 评论 -
一个 Spring Boot + MyBatis 的游标分页完整实现
Spring Boot + MyBatis 游标分页实现 采用游标分页(Cursor-based Pagination)解决传统 LIMIT+OFFSET 的性能问题,适合大数据量场景(如订单、消息流)。 核心实现: 1️⃣ 数据库设计:为状态+时间字段创建复合索引(status,created_at DESC) 2️⃣ Java模型:包含实体类(Order)、DTO(OrderDTO)、分页请求(CursorPageRequest)和响应(CursorPageResult) 3️⃣ 分页逻辑:通过游标(最原创 2025-09-30 00:17:19 · 405 阅读 · 0 评论 -
commons-mybatis 工具模块设计规范
📌 commons-mybatis 模块摘要 该模块是企业级微服务架构中数据库访问层的标准化解决方案,通过封装MyBatis-Plus通用能力,实现: 统一配置 - 自动加载分页/日志/多租户等拦截器 代码复用 - 提供BaseMapper扩展/分页工具/实体基类 规范约束 - 强制ID生成/字段命名/日志格式等标准 效率提升 - 内置批量操作/软删除/审计日志等企业常用功能 典型应用场景: 新服务只需继承BaseMyBatisConfig即获得完整ORM能力 跨服务保持分页参数/日志追踪的一致性 统一处原创 2025-09-26 00:54:26 · 985 阅读 · 0 评论 -
具有实际开发参考意义的 MyBatis-Plus BaseEntity 基类示例
MyBatis-Plus BaseEntity 通用基类实现方案 该方案提供了一套完整的 MyBatis-Plus 实体基类实现,适用于 Spring Boot 3 项目。BaseEntity 封装了企业级开发所需的通用字段,包括: 主键ID:采用雪花算法(IdType.ASSIGN_ID),避免自增ID暴露业务量 时间字段:自动填充的创建/更新时间(LocalDateTime类型) 逻辑删除:@TableLogic注解实现软删除 乐观锁:@Version注解支持并发控制 扩展字段:预留租户ID、操作用户等原创 2025-09-26 00:55:38 · 386 阅读 · 0 评论 -
MyBatis-Plus 通用接口 Service 与 Mapper 全面实战指南
本文全面介绍了 MyBatis-Plus 通用 Service 层接口(IService)和通用 Mapper 接口(BaseMapper)的使用方法,包含详细的实战示例和中文注释。主要内容包括: 准备工作:实体类定义、Mapper 和 Service 接口的继承关系 BaseMapper 常用操作: 插入、更新、删除(支持逻辑删除) 条件查询(Wrapper)、分页查询 自定义查询字段 IService 扩展功能: 批量插入/更新操作 saveOrUpdate 智能操作 链式调用等业务方法 所有示例都采用原创 2025-09-26 00:55:56 · 1003 阅读 · 0 评论 -
MyBatis-Plus Lambda 条件构造器全面实战指南
MyBatis-Plus Lambda条件构造器实战指南 本文全面介绍了MyBatis-Plus中Lambda条件构造器的使用,包含14种常见查询场景: 基础等值查询 多条件AND查询 OR条件查询 嵌套AND/OR复杂条件 模糊查询(LIKE) 范围查询(BETWEEN) IN/NOT IN查询 NULL判断 日期范围查询 排序 分组聚合查询 分页查询 子查询 动态条件拼接 所有示例均采用链式调用,支持编译期字段检查,避免SQL注入风险,并配有详细中文注释,可直接用于实际项目开发。原创 2025-09-26 00:55:22 · 806 阅读 · 0 评论
分享