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;

👉 插入 / 更新:

字段不丢

逻辑一致

相关推荐
basketball61615 小时前
C++ 面向对象编程:思想、原则与实践
开发语言·c++
曹牧15 小时前
C#:DataGridView控件中展示JSON内容
开发语言·c#·json
AIFQuant15 小时前
JavaScript 前端集成贵金属 K 线图:10 分钟快速实现
开发语言·前端·javascript·websocket·金融·期货api
范什么特西15 小时前
idea里面jsp找不到图片
java·开发语言·servlet
23.15 小时前
【分析】网关故障排查指南:如何区分并定位‘上游’与‘下游’问题
java
吃好睡好便好15 小时前
在Matlab中绘制三维直方图
开发语言·学习·算法·matlab·信息可视化
爱炸薯条的小朋友15 小时前
C#的详细应用和讲解池化为什么能提升 OpenCvSharp / Mat 的整体效率
开发语言·opencv·c#
不是山谷.:.15 小时前
websocket的封装
开发语言·前端·网络·笔记·websocket·网络协议
故事和你9116 小时前
洛谷-【图论2-2】最短路4
开发语言·数据结构·c++·算法·动态规划·图论
輕華16 小时前
YOLOv10轮毂缺陷检测(下)——模型推理与PyQt5可视化应用
开发语言·qt·yolo