当前位置: 首页 > ds >正文

MyBatis-Plus 快速入门 -常用注解

目录

1. 常用注解

@TableName

@TableId

@TableField

2. IdType 枚举

3. 使用 @TableField 的常见场景

4. 完整示例

5. 总结


在使用 MyBatis-Plus 的过程中,我们经常会用到一些注解来完成实体类与数据库表字段之间的映射关系。本文将带你快速入门,了解 常用注解 的使用方法。


1. 常用注解

@TableName

  • 作用:指定实体类对应的数据库表名。

  • 示例:

    @TableName("tb_user")
    public class User {}
    

@TableId

  • 作用:指定表中的主键字段信息。

  • 常用参数:

    • value:数据库主键字段名。

    • type:主键策略(如 AUTO 表示自增)。

  • 示例:

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    

@TableField

  • 作用:指定表中的普通字段信息。

  • 常用参数:

    • value:数据库对应字段名。

    • exist:是否为数据库字段(false 表示不是数据库字段)。

  • 示例:

    @TableField("username")
    private String name;@TableField(exist = false)
    private String address; // 非数据库字段
    

2. IdType 枚举

MyBatis-Plus 提供了多种主键生成策略:

  • AUTO:数据库自增。

  • INPUT:用户手动输入,通过 set 方法注入。

  • ASSIGN_ID:分配 ID,底层通过雪花算法生成全局唯一 ID。

示例:

@TableId(type = IdType.AUTO)
private Long id;

3. 使用 @TableField 的常见场景

  1. 成员变量名与数据库字段名不一致。

  2. 成员变量以 is 开头且为布尔值。

  3. 成员变量名与数据库关键字冲突。

  4. 成员变量不是数据库字段。


4. 完整示例

数据库表 tb_user

名称数据类型注释默认值
idBIGINT用户id自增
usernameVARCHAR用户名-
is_marriedBIT是否结婚0
orderTINYINT序号NULL

对应实体类:

@TableName("tb_user")
public class User {@TableId(value = "id", type = IdType.AUTO)private Long id;@TableField("username")private String name;@TableField("is_married")private Boolean isMarried;@TableField("order")private Integer order;@TableField(exist = false)private String address; // 非数据库字段
}

5. 总结

在 MyBatis-Plus 中,常用的注解主要有:

  • @TableName:映射数据库表名。

  • @TableId:定义主键及主键生成策略。

  • @TableField:映射普通字段或定义非数据库字段。

掌握这些注解,就能轻松完成实体类与数据库表的映射,大大提升开发效率。


✨ 如果你正在学习 MyBatis-Plus,可以先从这些注解入手,逐步深入,快速上手项目开发!

http://www.xdnf.cn/news/18896.html

相关文章:

  • 使用阿里云实现短信注册
  • SAVITECH盛微先进SAVIAUDIO音频解码芯片方案与应用
  • ValueTask 实战指南:解锁 .NET 异步编程的性能秘密
  • window显示驱动开发—混合系统 DDI 和 dList DLL 支持
  • 【P2P】P2P主要技术及RELAY服务实现
  • mac设置鼠标滚轮方向
  • 让清洁更智能,让城市更美好
  • 20、DMA----释放CPU压力,加快传输
  • 无人机航拍数据集|第30期 无人机腰果成熟度目标检测YOLO数据集3098张yolov11/yolov8/yolov5可训练
  • Day8--HOT100--160. 相交链表,206. 反转链表,234. 回文链表,876. 链表的中间结点
  • 艾利特石油管道巡检机器人:工业安全的智能守护者
  • 高通平台wifi--p2p issue
  • leetcode 17.04 消失的数字
  • 理解Vuex的辅助函数,分析mapState、mapGetters、mapMutations和mapActions各个应用场景
  • SQL 语句拼接在 C 语言中的实现与安全性分析
  • 大模型应用实战:构建企业知识库 RAG 系统(含权限控制 + 多轮对话)
  • 无线USB转换器TOS-WLink网盘更新--TOS-WLink使用帮助V1.0.pdf
  • 【C++游记】List的使用和模拟实现
  • 矩阵系统源代码开发,支持OEM贴牌
  • 5G与6G技术演进与创新对比分析
  • 我们为你连接网络,安装驱动程序
  • 车载诊断架构 --- DTC Event与DTC Status的对应关系
  • AWS ECS 成本优化完整指南:从分析到实施的最佳实践
  • CVPR 2025端到端自动驾驶新进展:截断扩散模型+历史轨迹预测实现精准规划
  • Frida 加密解密算法实现与应用指南
  • 【Linux】协议的本质
  • 基于深度学习的翻拍照片去摩尔纹在线系统设计与实现
  • Java基础第4天总结(继承)
  • 小明的Java面试奇遇之发票系统相关深度实战挑战
  • 论文阅读:VACE: All-in-One Video Creation and Editing