Mybatis-Plus条件构造器的select用法解读

 更新时间:2026年04月25日 08:47:09   作者:m0_59259076  
Mybatis-Plus条件构造器的select方法可以避免查询冗余字段,它支持查询除指定字段以外的所有字段、指定字段以及结合聚合函数查询,如查询各个部门员工的平均年龄并按部门ID降序排序,此方法能有效提高查询效率

Mybatis-Plus条件构造器的select

select作用

选取指定的数据库字段,避免查询冗余的字段。

下面简单叙述一下select的用法;

1、查询除了指定字段以外的所有字段

方法:

QueryWrapper<T> select(Class<T> entityClass, Predicate<TableFieldInfo> predicate)

    @GetMapping(value = "/test")
    public List<Animal> test(Animal arg) {
        QueryWrapper<Animal> wrapper = Wrappers.query(arg)
                .select(Animal.class, item -> ! item.getColumn().equals("age"));
        return animalService.list(wrapper);
    }

控制台打印的sql语句如下:

SELECT
	id,
	create_time,
	NAME,
	update_time,
	del_flag,
	hobby 
FROM
	animal 
WHERE
	del_flag =0

2、查询指定字段

方法:

QueryWrapper<T> select(String... columns)

    @GetMapping(value = "/test")
    public List<Animal> test(Animal arg) {
        QueryWrapper<Animal> wrapper = Wrappers.query(arg)
                .select("id", "name", "hobby");
        return animalService.list(wrapper);
    }

控制台打印的sql语句如下:

SELECT id,name,hobby FROM animal WHERE del_flag=0

3、结合聚合函数查询

方法:

QueryWrapper<T> select(String... columns)

查询各个部门员工的平均年龄,然后按照部门id降序排序 

    @GetMapping(value = "/test")
    public List<Animal> test(Animal arg) {
        QueryWrapper<Animal> wrapper = Wrappers.query(arg)
                .select("dept_id", "AVG(age) AS avgAge")
                .groupBy("dept_id")
                .orderByDesc("dept_id");
        return animalService.list(wrapper);
    }

控制台打印的sql语句如下:

SELECT
	dept_id,
	AVG( age ) AS avgAge 
FROM
	animal 
WHERE
	del_flag = 0 
GROUP BY
	dept_id 
ORDER BY
	dept_id DESC

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java Lambda表达式语法及用法示例

    Java Lambda表达式语法及用法示例

    这篇文章主要给大家介绍了关于Java Lambda表达式语法及用法的相关资料,lambda表达式是JAVA8中提供的一种新的特性,它支持Java也能进行简单的"函数式编程",文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • Java中StopWatch的使用示例详解

    Java中StopWatch的使用示例详解

    stopWatch 是org.springframework.util 包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比,这篇文章主要介绍了Java中StopWatch的使用详解,需要的朋友可以参考下
    2025-04-04
  • 举例讲解Java中的Stream流概念

    举例讲解Java中的Stream流概念

    这篇文章主要介绍了举例讲解Java中的Stream流概念,是Java入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09
  • idea中设置文件不进行git commit问题及解决

    idea中设置文件不进行git commit问题及解决

    文章介绍了在开发过程中如何使用 IntelliJ IDEA 的更改列表(changeList)功能来管理本地修改的文件,使其不会被提交到远程仓库,通过创建一个新的更改列表并将其标记为不提交,可以有效地隔离本地修改和远程仓库的代码,从而避免不必要的提交和潜在的错误
    2025-10-10
  • java validation 后台参数验证的使用详解

    java validation 后台参数验证的使用详解

    本篇文章主要介绍了java validation 后台参数验证的使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Springboot中登录后关于cookie和session拦截问题的案例分析

    Springboot中登录后关于cookie和session拦截问题的案例分析

    这篇文章主要介绍了Springboot中登录后关于cookie和session拦截案例,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • 浅析Java单例设计模式(自写demo)

    浅析Java单例设计模式(自写demo)

    Java单例模式是看起来以及用起来简单的一种设计模式,但是就实现方式以及原理来说,也并不浅显,下面这篇文章主要给大家详细介绍了Java中单例模式,需要的朋友可以参考下
    2021-12-12
  • 浅谈MyBatis3 DynamicSql风格语法使用指南

    浅谈MyBatis3 DynamicSql风格语法使用指南

    这篇文章主要介绍了浅谈MyBatis3 DynamicSql风格语法使用指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • jackson 实现null转0 以及0转null的示例代码

    jackson 实现null转0 以及0转null的示例代码

    这篇文章主要介绍了jackson 实现null转0 以及0转null的示例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Spring 自定义propertyEditor的示例代码

    Spring 自定义propertyEditor的示例代码

    这篇文章主要介绍了Spring 自定义propertyEditor的示例代码,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12

最新评论