MyBatis-Plus排除不必要的字段

查询学生信息排除年龄列表 📚🔍

使用MyBatis-Plus排除某些字段。如果你想要进行查询,但又不需要包含某些字段,那么这个功能将非常适合你。🔍🎓📝

1. 学生信息查询-排除年龄列表

在使用 MyBatis-Plus 进行查询时,我们可以使用以下示例代码来选择不必要的字段:

java 复制代码
return lambdaQuery()
       .select(Student.class , info -> ! info.getColumn().equals("age"))
       .list();

在这个 Lambda 表达式中,info 是一个 TableFieldInfo 对象,表示实体类中的一个字段信息。getColumn() 方法返回字段的名称。

!info.getColumn().equals("age") 的含义是判断字段名称是否等于 "age",如果字段名称不等于 "age",则条件判断结果为 true,表示选择该列进行查询;如果字段名称等于 "age",则条件判断结果为 false,表示不选择该列进行查询, ! 运算符表示逻辑非,将判断结果取反。

因此,这段代码的作用是选择字段名称不等于 "age" 的列进行查询,而排除了名为 "age" 的列。

这个功能的好处在于我们可以轻松地进行字段的选择,而无需编写 SQL 语句。让我们看看返回结构:

2.设定默认属性非空规则 📄✨

如果你不想给前端返回空值,那么你可以使用以下配置来设定默认属性的非空规则:

yaml 复制代码
spring:
  jackson:
    defaultPropertyInclusion: NON_NULL

当我们使用 Jackson 将 Java 对象序列化为 JSON 时,可以通过设置 defaultPropertyInclusion 属性来指定默认的属性包含策略。属性的包含策略有以下几种选项:

  • ALWAYS:包含所有属性,包括 null 值。
  • NON_NULL:只包含非空属性。
  • NON_EMPTY:只包含非空且非空字符串属性。
  • NON_DEFAULT:只包含在对象中明确设置过值的属性。

通过将 defaultPropertyInclusion 设置为 NON_NULL,我们可以确保在序列化为 JSON 时,只有非空的属性会被包含在内,而 null 值将不会被返回给前端。这个设置非常方便,可以有效地优化前端的数据处理。

让我们看看下面的返回结果,更好地理解这个设置的作用:

结语 📝🎉

MyBatis-Plus 的强大功能确实查询提供了很大的便利。通过选择不必要的字段以及设定默认属性的非空规则,我们可以更加灵活地操作查询结果,并优化前端数据的展示!👍📢

相关推荐
程序员三明治1 天前
【MyBatis从入门到入土】告别JDBC原始时代:零基础MyBatis极速上手指南
数据库·mysql·mybatis·jdbc·数据持久化·数据
Mr_Chester1 天前
mybatis OGNL+优雅处理简单逻辑
java·tomcat·mybatis
涵涵(互关)1 天前
Maven多模块项目MyMetaObjectHandler自动填充日期未生效
spring·maven·mybatis
ss2732 天前
手写MyBatis第96弹:异常断点精准捕获MyBatis深层BUG
java·开发语言·bug·mybatis
lang201509282 天前
MyBatis配置全解析:核心要点详解
mybatis
yunmi_2 天前
安全框架 SpringSecurity 入门(超详细,IDEA2024)
java·spring boot·spring·junit·maven·mybatis·spring security
wuxuanok2 天前
苍穹外卖 —— 公共字段填充
java·开发语言·spring boot·spring·mybatis
伯明翰java2 天前
mybatis-generator插件自动生成mapper及其实体模型配置
java·开发语言·mybatis
简色3 天前
题库批量(文件)导入的全链路优化实践
java·数据库·mysql·mybatis·java-rabbitmq
lunzi_fly3 天前
【源码解读之 Mybatis】【核心篇】--第5篇:Executor执行器体系详解
mybatis