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;

👉 插入 / 更新:

字段不丢

逻辑一致

相关推荐
RuoyiOffice5 分钟前
Spring AI+Vue3 企业知识库设计:让每个答案有依据,让每份资料守住权限
java·spring boot·vue3·rag·企业知识库·spring ai·ruoyi office
卢锡荣37 分钟前
乐得瑞Type-c接口产品描述
c语言·开发语言
晴天的雨.99238 分钟前
【C++】模板进阶
开发语言·c++·算法
倔强的石头10641 分钟前
【Linux指南】进程通信系列(二):匿名管道 —— pipe 的本质、fork 继承与四种读写规则
java·linux·运维
调试优选官1 小时前
2026年IoT物联网开发赛道年度榜单深度解析:D-coding物联网系统定制与源码交付能力专项解读
java·物联网·struts·iot·开发经验
木井巳1 小时前
【动态规划】三步问题
java·算法·leetcode·动态规划·推荐算法
小张成长计划..1 小时前
【Linux】25:线程概念和控制
java·linux·jvm
蛋蛋的就会顺顺的10 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
需要82610 小时前
Spring Bean 生命周期:从实例化到销毁的完整钩子
java·后端·spring
小 黄 鸡11 小时前
HashMap 面试必会知识点详解(JDK 8)
java·面试·职场和发展