商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Mybatis-Plus条件构造器的select用法解读

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

  发布于2026-07-12 阅读(0)

扫一扫,手机访问

Mybatis-Plus条件构造器的select

select作用

除了增删改查,Mybatis-Plus的条件构造器里还有一大杀器——select。它的核心任务很简单:精准选取你需要的数据库字段,避免把整张表的大字段都捞出来。毕竟在实际项目中,冗余查询不仅浪费带宽,还拖慢接口响应速度。

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

下面直接进入主题,看看select到底怎么用。

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

有些场景下,你不想查某个字段。比如一张animal表里有个age字段,但业务上不需要它。这时候可以用Lambda风格的谓词过滤。

方法签名:

QueryWrapper select(Class entityClass, Predicate predicate)

    @GetMapping(value = "/test")
    public List test(Animal arg) {
        QueryWrapper 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

看,age字段被完美排除,其他字段全部保留。这种写法特别适合那些字段多、但只想剔除个别列的情况。

2、查询指定字段

这个是最常规的用法:手写你想查的字段名列表。

方法签名:

QueryWrapper select(String... columns)

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

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

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

字段少、且确定要查哪些列时,这种方式最直接。

3、结合聚合函数查询

select并不只是用来选普通列——它还能配合聚合函数一起使用。比如你得按部门统计平均年龄,然后按部门id降序输出。

方法签名:

QueryWrapper select(String... columns)

    @GetMapping(value = "/test")
    public List test(Animal arg) {
        QueryWrapper wrapper = Wrappers.query(arg)
                .select("dept_id", "A VG(age) AS a vgAge")
                .groupBy("dept_id")
                .orderByDesc("dept_id");
        return animalService.list(wrapper);
    }

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

SELECT
	dept_id,
	A VG( age ) AS a vgAge 
FROM
	animal 
WHERE
	del_flag = 0 
GROUP BY
	dept_id 
ORDER BY
	dept_id DESC

注意这里select里直接用了"A VG(age) AS a vgAge",相当于把聚合逻辑也写进了构造器中,干净利落。

总结

select方法虽然看起来简单,但在实际开发中非常实用。不论是为了性能优化排除冗余列,还是结合聚合函数做统计,它都能帮你写出一手漂亮的动态查询。与其在XML里反复拼SQL,不如用MP的构造器把这些活全包了。

本文转载于:https://www.jb51.net/program/362802g4e.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注