news 2026/6/26 12:49:55

MyBatis-Plus 是一款基于 MyBatis 的增强工具,简化了数据库操作,极大提高了开发效率。在使用 MyBatis-Plus 进行开发时,有一些常用的核心注解。本文将为大家介绍常用的几个注

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MyBatis-Plus 是一款基于 MyBatis 的增强工具,简化了数据库操作,极大提高了开发效率。在使用 MyBatis-Plus 进行开发时,有一些常用的核心注解。本文将为大家介绍常用的几个注

MyBatis-Plus 是一款基于 MyBatis 的增强工具,简化了数据库操作,极大提高了开发效率。在使用 MyBatis-Plus 进行开发时,有一些常用的核心注解。本文将为大家介绍常用的几个注解:@TableName@TableId@TableField@TableLogic,并详细说明它们的作用和使用场景,同时提供示例代码。

1. @TableName

@TableName注解用于指定数据库中的表名。通常情况下,MyBatis-Plus 会根据实体类名自动推测表名,但如果表名与实体类名不相同,我们就可以使用此注解。

使用场景
  • 表名与实体类名称不一致时,需要明确指定。
  • 在进行多表操作时,需确保精确的表名。
示例代码
importcom.baomidou.mybatisplus.annotation.TableName;@TableName("user_info")publicclassUser{privateLongid;privateStringname;privateIntegerage;// Getter 和 Setter 方法省略}

在上述代码中,User类将映射到数据库中的user_info表。

2. @TableId

@TableId注解用于指定主键字段。MyBatis-Plus 提供了自动策略来生成 ID,可以通过该注解的属性指定。

属性:
  • value: 映射数据库中的主键列。
  • type: 主键策略,例如:IdType.AUTOIdType.UUIDIdType.INPUT等。
使用场景
  • 需要明确标识实体类的主键字段。
  • 自定义主键生成策略时。
示例代码
importcom.baomidou.mybatisplus.annotation.TableId;importcom.baomidou.mybatisplus.annotation.IdType;publicclassUser{@TableId(value="user_id",type=IdType.AUTO)privateLongid;privateStringname;privateIntegerage;// Getter 和 Setter 方法省略}

在该示例中,User类中的id字段被标识为主键,且使用了自增策略。

3. @TableField

@TableField注解用于指定普通字段与数据库列的映射关系。可以自定义字段名,如字段名与列名不一致时,或者配置其他属性,如数据库字段是否为空等。

属性:
  • value: 映射数据库中的列名。
  • exist: 指示该字段是否存在于数据库表中。
使用场景
  • 字段名称与数据库列名称不一致时。
  • 设置字段的一些额外属性,如是否为数据库字段等。
示例代码
importcom.baomidou.mybatisplus.annotation.TableField;publicclassUser{privateLongid;@TableField("user_name")// 映射到数据库中的 user_name 列privateStringname;@TableField(exist=false)// 表示该字段不在数据库中privateStringtemporaryField;// Getter 和 Setter 方法省略}

在此代码中,name字段映射到数据库的user_name列,而temporaryField字段不在数据库表中。

4. @TableLogic

@TableLogic注解用于实现逻辑删除。使用该注解的字段将用于标记实体的删除状态,通过标记删除数据而不从数据库中物理删除。

属性:
  • value: 标记为删除的值(例如:1)。
  • delval: 标记为未删除的值(例如:0)。
使用场景
  • 需要逻辑删除功能的场合。
  • 不希望实际删除数据,而是标记数据为删除状态。
示例代码
importcom.baomidou.mybatisplus.annotation.TableLogic;publicclassUser{privateLongid;privateStringname;privateIntegerage;@TableLogicprivateIntegerdeleted;// 0 表示未删除,1 表示已删除// Getter 和 Setter 方法省略}

在这个例子中,deleted字段作为逻辑删除标志,您可以根据该字段的值判断用户是否被删除。

最后小结下哈

MyBatis-Plus 提供的这几个注解 (@TableName@TableId@TableField@TableLogic) 为我们在数据库操作时提供了极大的便利。通过这些注解,可以简化代码、降低出错率,使得整个开发过程更加高效。在实际应用中,根据具体需求选取合适的注解进行使用,将会极大地提升代码的可读性和可维护性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 12:41:51

P89LPC93x1启动向量与Flash安全配置实战指南

1. 项目概述与核心价值如果你正在使用NXP的P89LPC9301或P89LPC931A1这类8位微控制器开发产品,尤其是那些涉及知识产权保护或运行环境敏感的应用,那么理解并正确配置其Boot Vector(启动向量)和Flash安全机制,就不是一个…

作者头像 李华
网站建设 2026/6/26 12:41:37

Sunshine游戏串流完整指南:3步打造你的跨平台家庭游戏中心

Sunshine游戏串流完整指南:3步打造你的跨平台家庭游戏中心 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 想要在客厅大屏电视上玩PC游戏?想在平板上继续游…

作者头像 李华
网站建设 2026/6/26 12:41:06

彻底解决远程桌面CredSSP身份验证错误:从原理到实操指南

1. 项目概述:从一次棘手的远程桌面故障说起如果你是一名系统管理员、IT运维工程师,或者经常需要远程管理Windows服务器的开发者,那么“远程桌面身份验证错误”这个弹窗,大概率是你职业生涯中挥之不去的“老朋友”。特别是当错误信…

作者头像 李华
网站建设 2026/6/26 12:39:31

基于Simulink的RL78单片机模型驱动设计与代码生成实战

1. 项目概述:为什么我们需要一个“虚拟的单片机”?在嵌入式开发,尤其是电机控制、电源管理这类对时序和实时性要求极高的领域,传统的开发流程常常让人头疼。你写好算法,满怀期待地烧录到RL78单片机里,结果电…

作者头像 李华
网站建设 2026/6/26 12:38:02

EM773微控制器IAP编程与SWD调试实战指南

1. 项目概述与核心价值在嵌入式产品开发,尤其是那些需要远程升级或现场维护的设备中,如何在不拆机、不依赖专用烧录器的情况下更新固件,是一个绕不开的工程挑战。这正是在线应用编程(IAP)技术的用武之地。它允许运行在…

作者头像 李华