Mybatis Plus 中@TableField使用正解

使用自定义注解翻译字典项 使用自定义注解翻译字典项 使用拦截器/aop 阅读详情

1 研究背景和过程

妹纸开发突然发现@TableField失效了,在群里发问。一了解,发现妹纸本意是想用@TabkeField达到类似@JsonProperty的功能。也就是当实体类属性名与数据库列名不一致时,通过此注解实现别名效果。
奇怪的是,这注解一部分成功,一部分失效。具体表现就是有时候可以取到值,有时候又取不到。我点进改注解源码,发现它给value设定的本意是:当驼峰转化未开启时,使用此注解实现驼峰转化。然而,我实际测试表明它其实没这功能。
我信誓旦旦跟妹纸讲,@TableField没有别名的功能。谁知妹纸给我发了一张自动打印sql的截图。里面清清楚楚的显示,MP确实自动生成了AS别名。灵光一闪,是否是Mybatis Plus自动生成的可以别名,而自己写的sql就不行?
不验不知道,一验吓一跳。果然如此,手写的sql都不能自动生成别名,而自动生成的sql查询语句都成功转化了。至此,@TableField注解告一段落。

2 总结

2.1 别名效果 value属性

  • 使用MP自动生成的方法时,可以用@TableField起别名
  • 在xml写sql时,需要用as或者resultMap来转化,@TableField是不生效的

2.2 防止字段持久化 exist属性

使用exist属性可以控制类中属性在表中是都一定对应,如果有不存在于数据表的字段,建议都设成fasle

【MySQL用法】mybatis框架中,查询出来的实体类结果集中的某一个字段无法映射到实体类中的解决方案 本文目录 一、背景描述 二、解决方案 一、背景描述 根据某人出现的次数做一次汇总,数据库中并未存在此字段,但是前端页面中要用到,所以就需要在实体类中添加上一个逻辑字段(通过mybatis-plus里的@TableField注解可以解决此问题) SQL语句如下: <!--分组查询日/周/月报未读列表数据--> <select id="queryList" resultType="com.iot.uoa.daily.entity.DailyNoReadReport"> S 阅读详情

相关推荐

告别手动抓信号!Synopsys AXI VIP的Port Monitor实战:5分钟搞定与Scoreboard的TLM连接

本文详细介绍了Synopsys AXI VIP的Port Monitor功能,帮助验证工程师快速实现与Scoreboard的TLM连接,5分钟内完成自动数据收集。通过实战指南和常见问题排查,提升验证效率,告别手动抓信号的繁琐流程。

weixin_30565327的博客 300

MybatisPlus中@TableField注解的使用

实现 官方文档说明: com.baomidou.mybatisplus.annotations.TableField TableField 注解新增属性 update 预处理 set 字段自定义注入 (讲解:比如我们使用mybatisplus自带的insert()方法向数据库插入数据时,假设我们给age字段赋值为1,但是我们在age字段上的@TableField注解里面加了update="%s...

JavaAlliance 18万+

微腔光频梳仿真入门:MATLAB求解LLE方程全流程解析

光学频率梳在精密测量、光通信和微波光子学中有着广阔应用,而微环谐振腔中的Kerr非线性与四波混频效应能够紧凑地产生宽带梳齿。仿真这类系统的核心是求解Lugiato-Lefever方程(LLE),但直接从物理参数到数值代码往往让初学者无从下手。本文从微腔光频梳的物理图像出发,介绍LLE方程的推导与归一化方法,并重点讲解MATLAB数值实现的两种思路:基于ode45的频域耦合方程组求解与分裂步长RK4IP方法。同时讨论失谐扫描、孤子态识别、参数稳定性边界,以及如何将真实器件参数换算为无量纲仿真参数。无论你是刚接

weixin_32325225的博客 294

MyBatis基本用法-TableField

MyBatis基本用法-TableField

qq_41177135的博客 923

别再写爬虫了!用Trae平台5分钟搞定一个能聊天的网页数据抓取Agent

本文介绍了如何利用Trae平台快速构建无需编程的网页数据抓取智能体,实现对话式数据采集。通过自然语言指令,用户可在5分钟内完成从数据抓取到分析的全流程,显著降低技术门槛和维护成本。文章详细解析了Trae智能体的核心能力,包括自然语言理解、智能页面解析、数据清洗和可视化配置,并提供了多个实战案例,展示其在竞品监控和舆情分析中的高效应用。

weixin_29038303的博客 718

【FOC无刷电机控制】六步换向、FOC,STM32cubemx从零开始搭建BLDC六步换相代码、FOC代码(基于霍尔传感器)

FOC、六步换相,无刷电机控制

xifan的博客 3万+

深入了解:MybatisPlus中@TableField注解的使用

TableField是MybatisPlus提供的一个注解,用于标识实体类中的属性与数据库表字段的映射关系。通过@TableField注解,我们可以灵活地指定属性对应的数据库表字段名,以及配置一些其他属性的特性,比如是否为主键、是否为插入字段、是否为更新字段等。@TableField注解是MybatisPlus中一个非常有用的注解,它能够帮助我们更灵活地映射数据库表字段和实体类属性。通过合理地使用@TableField注解,我们可以提高开发效率,并且减少出错的可能性。

牛肉胡辣汤 1万+

【毕设课设】基于YOLO v3与LSTM的水位智能识别系统(附完整源码+数据集)

本文详细介绍了基于YOLO v3与LSTM的水位智能识别系统的完整实现方案。该系统通过YOLO v3精准定位水位尺数字,结合LSTM-OCR进行序列识别,并融合霍夫变换检测刻度线,实现高精度水位自动读取。项目提供了从环境搭建、模型训练到集成部署的全流程指南,并附有完整源码和数据集,是理想的毕设课设实战项目。

php55的博客 611

深入学习@TableField注解:MyBatis-Plus中的字段映射技术解析

深入学习@TableField注解:MyBatis-Plus中的字段映射技术解析

李长渊的博客 6134

鸿蒙录屏推流应用完整解决方案

本文介绍了鸿蒙录屏推流应用的完整解决方案。项目采用分层架构设计,包含录屏、编码、推流等功能模块,要求实现4小时稳定运行且延迟小于3秒。技术实现包括:1) 通过config.json配置应用权限和功能;2) 使用ScreenRecorderManager类管理录屏服务,实现视频采集、音频录制和编码参数配置;3) 核心功能包含初始化录屏器、开始/停止录屏等操作。该方案充分利用鸿蒙系统的多媒体API,实现了高性能的屏幕录制与实时推流功能。

huanghm88的专栏 292

华为OD机试真题 新系统2026-04-08 C++ 实现【直捣黄龙】

小王在玩一款叫做直捣黄龙的小游戏,在该游戏中他需要从入口位置进入敌营,绕过哨兵的层层封锁,达到敌军司令部实施斩首行动。 敌军阵营是一个n*n的矩阵,入口在坐标(0,n/2),敌军司令部在坐标(n-1,n/2),每个 哨兵警戒以自己为中心的9宫格,一旦被哨兵发现则行动失败。

MISAYAONE的博客 263

mybatis plus框架@TableField注解不生效问题及解决方案

这种方式确实可以实现,但是实现起来会很困难,因为不想破坏mybatis和mybaits plus原有的功能,比如:autoMapping、下划线转驼峰、resultMap、各种返回类型处理。。。如果自己重新实现,代价就太大了,这是得不偿失的做法。如果不破坏这些功能,只是稍微做些修改的话是可以接受的。

Theoweb3|优快云 wwh1st|GitHub theoweb3|TG theo_liu|X theoweb33|gmail wwh9th 华语区Web3基础设施建设者;Web3开源社区共建者;博客沉淀去中心化等各类工程经验。 8643

vs2017配置liblas库+测试代码

之前已经配置好pcl(vs2017配置pcl),可以单独配置liblas,也可以在原有pcl属性表的基础上继续配置

孙悟空 4023

MyBatis基本用法-@TableField

MyBatis基本用法-@TableField

qq_41177135的博客 1067

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

MyBatisPlus的@TableField注解基本使用

在MP中通过@TableField注解可以指定字段的一些属性,常见解决的问题有2种:1、对象中的属性名和字段名不一致的问题(非驼峰)2、对象中的属性字段在表中不存在的问题上述的两种情况,我们接下来一一举例说明我们最长见的,应该就是下面这种@TableField的使用方式了,是的,没错,就是在实体里面标注这个属性是数据库表里面的某个字段,采用驼峰命名法的方式以上就是MyBatisPlus中的@TableField注解基本使用,后续如果发现更多使用技巧,会及时回来更新。......

见证自己学习,成长的记录 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

深入了解:MyBatisPlus中使用 @TableField完成字段自动填充

TableField注解是MyBatisPlus提供的用于实体类字段的注解,用于配置字段的属性和行为。其中,我们可以通过设置fill属性来实现字段自动填充的功能。通过使用@TableField注解和自定义的MetaObjectHandler填充处理器,我们可以很方便地实现字段的自动填充功能。在MyBatisPlus中,这个功能可以简化我们的开发工作,提高代码的可维护性和可读性。希望本文对大家在使用MyBatisPlus进行开发时有所帮助!

牛肉胡辣汤 4666

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

@TableField注解:深入理解与应用

MyBatis-Plus(简称MP)是一个MyBatis的增强工具,旨在简化开发、提高效率。它提供了许多便捷的功能,如代码生成、分页插件、性能分析插件等,使得开发者可以更专注于业务逻辑的实现,而不必过多关注底层的数据库操作。注解是MyBatis-Plus提供的一个注解,用于标识实体类字段与数据库表字段的映射关系。通过注解,可以指定字段的名称、是否为数据库字段、是否为主键、是否为逻辑删除字段等属性,从而实现更灵活的数据库操作。

xycxycooo的博客 8427

MyBatis-Plus中的@TableField注解:全面解析与实战指南

注解是MyBatis-Plus中非常重要的一个注解,通过它,MyBatis-Plus可以自动识别字段与列之间的映射关系,并进行相应的操作。本文详细讲解了注解的基本属性、使用方式、字段填充及动态SQL,并通过丰富的代码示例帮助你全面理解其工作机制。希望本文能帮助你更好地使用MyBatis-Plus,提高开发效率。如果你有任何问题或建议,欢迎在评论区留言讨论。

xycxycooo的博客 5076

深度解析 MyBatis`@TableField(typeHandler = JacksonTypeHandler.class)`:优雅处理复杂数据存储

不仅是技术实现,更代表了一种"对象即文档"的设计哲学。它巧妙地在关系型数据库与面向对象编程之间架起了桥梁,为现代应用开发提供了极大的灵活性。随着JSON在各类数据库中的支持越来越完善,这种模式将成为处理复杂数据结构的标准解决方案之一。正确使用这一技术,开发者可以大幅减少样板代码,提高开发效率,同时保持系统的扩展性和可维护性。希望本文能帮助你在实际项目中更好地运用这一强大特性。

hi星尘的博客 2325

mybatis-plus常用注解@TableId、@TableField

当我们用mybatis-plus对数据库进行操作时,比如说如下代码可以发现我们没有设置id,但是插入的时候id却是能够自己插入进去。但是要是将实体类字段的id改为uid呢?数据库的字段也改为id,再次执行代码那如何在不改变字段的情况下,解决这个问题呢?可以在该字段上加上。......

爪哇人的博客 7262

Mybatis-plus知识总结(一)TableId、TableField和TableName注解的作用

Mybatis知识总结

qq_44648936的博客 3613

【MyBatis-Plus】@TableField详解

这是MyBatis-Plus框架中的一个注解,用于实体类的属性上,此注解的方法有以下内容, 针对以下十四种属性,这里主要说明其常用到的三种属性。 在学习半自动ORM框架MyBatis中,我们要么使用ResultMap或者在配置中使用驼峰命名规则来让数据库的字段和实体类的属性名对应。而在全自动ORM框架的MyBatis-Plus中就是使用value属性来完成这项操作的。(注:忘了的可以看我之前整理的MyBatis框架笔记)

m0_65563175的博客 5633

MyBatis-Plus框架中@TableField注解的详细介绍

@TableField注解在MyBatis-Plus中用于控制实体类与数据库表字段之间的映射关系,提供了丰富的属性来灵活地处理字段的各种行为,包括字段映射、查询条件、自动填充、类型转换等,能够满足大多数复杂的业务场景需求。

shitou的博客 1645

深入理解@TableField注解的使用-MybatisPlus教程

在MyBatis-Plus中,注解用于控制实体类与数据库表字段之间的映射关系。通过合理使用注解,可以更灵活地控制字段的映射、查询和插入等行为。以下是对@TableField注解的深入理解和使用方法的详细介绍。

wyz012345的博客 2130

注解@TableField(value)

这样,MyBatis-Plus 在进行数据库操作时,会根据注解的映射关系来正确地读取和写入数据库表的字段值。例如,如果数据库表中的字段名为 “name”,而实体类中的字段名为 “userName”,则可以使用。是 MyBatis-Plus 框架中的注解之一。它用于指定实体类字段与数据库表字段之间的映射关系。参数用于指定数据库表中的字段名。通过在实体类的字段上添加。注解,可以将该字段与数据库表中的指定字段进行映射。

weixin_43930851的博客 1013

MyBaits-Plus中@TableField和@TableId用法

MP中的@TableField注解和@TableId注解的简单使用,保证一些简单的MP+SpringBoot开发中必备的知识点。学会使用这些知识点会使你的基础知识更加牢固,在以后碰到类似的情况会节约很多查资料的时间。也是在运用MP时必须要掌握的知识点。

心态的博客 6722
上一篇: 分享一个比较好用的图片url转base64工具类
下一篇: 第三方接口对接规范
一步一结
博客等级 码龄7年 50粉丝 65原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值