Hidewnd Docs Hidewnd Docs
首页
  • 常用开发环境
  • 常用提示词
  • 常用Linux命令
  • 常用Git规范及命令
  • Java开发聊天机器人
  • word模板生成实现方案
  • 基于Go写一个极简的通讯demo
  • SpringBoot配置文件加密处理
  • SpringBoot优雅的抛出业务异常
  • 通用大模型适配器
  • 10分钟快速搭建个人博客
  • [学习笔记]Lua
  • [学习笔记]JVM
  • [学习笔记]设计模式
  • [部署笔记]搭建Typecho博客
  • [部署笔记]部署Qsign签名机
  • [部署笔记]安装PVE系统
  • [部署笔记]部署KingBaseV9电科金仓
  • 技艺成本
  • Rules
  • Setting
  • Skill
  • 剑三网站合集
  • 合并大区角色数据处理
  • 25PT冷龙峰教学笔记
  • 25PT太极宫教学笔记
  • 25PT弓月城教学笔记
关于
GitHub (opens new window)
首页
  • 常用开发环境
  • 常用提示词
  • 常用Linux命令
  • 常用Git规范及命令
  • Java开发聊天机器人
  • word模板生成实现方案
  • 基于Go写一个极简的通讯demo
  • SpringBoot配置文件加密处理
  • SpringBoot优雅的抛出业务异常
  • 通用大模型适配器
  • 10分钟快速搭建个人博客
  • [学习笔记]Lua
  • [学习笔记]JVM
  • [学习笔记]设计模式
  • [部署笔记]搭建Typecho博客
  • [部署笔记]部署Qsign签名机
  • [部署笔记]安装PVE系统
  • [部署笔记]部署KingBaseV9电科金仓
  • 技艺成本
  • Rules
  • Setting
  • Skill
  • 剑三网站合集
  • 合并大区角色数据处理
  • 25PT冷龙峰教学笔记
  • 25PT太极宫教学笔记
  • 25PT弓月城教学笔记
关于
GitHub (opens new window)
  • Cursor
  • Rules

    • caching-and-distributed-lock
    • database-entity-annotations
    • design-patterns
    • idempotency-specification
    • java-21-language-specification
    • java-clean-code-effective-java-spec
    • java-entity-vo-specification
    • java-language-specification
    • logging-specification
    • openapi-and-api-doc-spec
    • persistence-repository-specification
      • 持久化选型
      • 仓储接口与实现
      • 方法命名与职责
      • MyBatis 映射规范
      • 查询与分页
      • 性能与安全
    • rest-api-specification
    • springboot-architecture-layering
    • springboot-config-and-profiles
    • springboot-exception-and-error-code
    • springboot-testing-specification
    • validation-specification
  • Setting

  • Skill

  • Cursor
  • Rules
hidewnd
目录

Spring Data 与 MyBatis 持久化规范

# Spring Data 与 MyBatis 持久化规范

# 持久化选型

  • 以读写简单、结构稳定的场景优先使用 Spring Data JPA 或 Spring Data 风格接口
  • 以复杂查询、批量写入、性能敏感场景优先使用 MyBatis 或 MyBatis Plus
  • 同一聚合内尽量保持单一持久化技术

# 仓储接口与实现

  • 领域层定义仓储接口,例如 UserRepository
  • 基础设施层提供具体实现,例如 UserRepositoryImpl 或 MyBatis Mapper
  • 在应用层及领域层依赖仓储接口而非具体实现

# 方法命名与职责

  • 仓储方法命名体现查询意图与筛选条件
    • findById、findByUserIdAndStatus
    • listByUserId、existsByUserId
  • 仓储只负责数据访问与对象映射,不承载业务决策逻辑

# MyBatis 映射规范

  • Mapper 接口命名为 *Mapper,XML 文件与接口同名
  • XML 中的 SQL 使用统一缩进与关键字大小写风格
  • 避免在 XML 中写过于复杂的业务逻辑,复杂逻辑拆分为多个 SQL 与组合调用

# 查询与分页

  • 分页查询统一使用分页插件或统一的分页参数对象
  • 查询结果集大小可控,避免一次性查询超大数据集

# 性能与安全

  • 对高频查询建立合适索引并在 Mapper 中明确使用条件
  • 禁止拼接未校验的用户输入到 SQL 语句中
  • 对批量更新与插入统一使用批处理接口
openapi-and-api-doc-spec
rest-api-specification

← openapi-and-api-doc-spec rest-api-specification→

github
Theme by Vdoing | Copyright © 2024-2026 Hidewnd
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式