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;

👉 插入 / 更新:

字段不丢

逻辑一致

相关推荐
毕设源码-钟学长7 分钟前
【开题答辩全过程】以 国产汽车的在线销售系统为例,包含答辩的问题和答案
java
亓才孓20 分钟前
【MyBatis Plus】Wrapper接口
java·开发语言·数据库·spring boot·mybatis
tianzhiyi1989sq30 分钟前
C++工具库之PugiXML使用指南
java·数据库·c++
毕设源码-钟学长32 分钟前
【开题答辩全过程】以 哈尔滨市小酒窝APP为例,包含答辩的问题和答案
java
游乐码33 分钟前
c#运算符重载
开发语言·c#
人道领域43 分钟前
MyBatisPlus高效开发实战指南
java·开发语言·数据库
游乐码1 小时前
c#继承的原则
开发语言·c#
lsx2024061 小时前
Servlet 文件上传
开发语言
游乐码1 小时前
c#内部类和分部类
开发语言·c#
消失的旧时光-19431 小时前
C++ 多线程与并发系统取向(四)—— std::condition_variable:线程协作与生产者消费者模型(类比 Java wait/notify)
开发语言·c++