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 天前
基于SpringBoot的高校餐饮档口管理系统
java·vue.js·spring boot·后端·spring·intellij-idea·mybatis
身如柳絮随风扬1 天前
MyBatis-Plus与PageHelper分页方案对比
mybatis
罗山仔1 天前
【Vertx构建异步响应式reactive mybatis,mybatis-vertx-adaptor】
mybatis·orm·异步·reactive·响应式·webflux·vertx
java1234_小锋2 天前
Java高频面试题:如何编写一个MyBatis插件?
java·开发语言·mybatis
fe7tQnVan2 天前
MyBatis-动态sql与高级映射
数据库·sql·mybatis
qq12_8115175152 天前
Java Web 影城会员管理系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
java·前端·mybatis
Java成神之路-2 天前
MyBatis 开发模式演进:原生、Spring 与 Spring Boot 整合实战(MyBatis系列2)
spring boot·spring·mybatis
taWSw5OjU2 天前
MyBatis-plus进阶之映射与条件构造器
数据库·oracle·mybatis
身如柳絮随风扬2 天前
Mybatis分页实现原理与PageHelper插件深度解析
mybatis
希望永不加班2 天前
SpringBoot 缓存注解:@Cacheable/@CacheEvict 使用
java·spring boot·spring·缓存·mybatis