MyBatis框架篇

一. mybatis为啥定义接口就可以直接使用?

MyBatis使用JDK动态代理,在运行时为Mapper接口生成实现类。

二. mybatis通过resultMap来保证数据的一致性。mybatis-plus如何进行保证?

  1. 驼峰映射(默认开启)

mybatis-plus:

configuration:

map-underscore-to-camel-case: true

DB:create_time

Java:createTime

  1. 实体注解显式声明(强一致)

注解 作用

@TableName 表名

@TableId 主键

@TableField 字段映射

@TableLogic 逻辑删除

@Version 乐观锁

@EnumValue 枚举映射

  1. 类型处理器(TypeHandler)

和 MyBatis 一样:

@TableField(typeHandler = JacksonTypeHandler.class)

private Map<String, Object> writeFormData;

👉 保证:

JSON ↔ Map

Enum ↔ int / String

LocalDateTime ↔ datetime

  1. MetaObjectHandler(填充一致性)

@TableField(fill = FieldFill.INSERT)

private LocalDateTime createTime;

👉 插入 / 更新:

字段不丢

逻辑一致

相关推荐
2601_962072218 分钟前
SpringMVC进阶(自定义拦截器以及异常处理)
java
2601_9620738130 分钟前
Spring全面详解(基础版)
java·后端·spring
kyle~1 小时前
C++_STL---迭代器失效
开发语言·c++
谢亮_vipxieliang2 小时前
ValidX分组验证详解:不同场景使用不同验证规则
java·spring boot·后端·spring cloud·eclipse·hibernate
Brilliantwxx2 小时前
【C语言】 初入嵌入式C语言复习(基础+进阶面试题)
c语言·开发语言
熊野君2 小时前
附录与 Codex 实操手册
开发语言·人工智能·产品经理
wuminyu2 小时前
深入剖析 Panama Off-heap 的性能损耗与开销
java·linux·c语言·jvm·c++
pnoker2 小时前
IoT DC3 AI 能力:Agentic Center 的设计与边界
java·人工智能·物联网·大模型·spring ai
xiaoqiMikko3 小时前
一条 CVSS 9.0 的 RCE,advisory 里没写修复版是哪个 —— fastjson 16723 的字段考古
java·安全
程序员贺加贝3 小时前
一次 SaaS ERP 主数据生命周期设计:Policy、PreCheck 与结构化阻断原因
java·后端·架构·saas