Mybatis-Plus中的查询指定字段

 更新时间:2024年09月20日 09:18:11   作者:清梦压星河_Ciao  
在使用Mybatis-Plus进行数据查询时,可以通过指定字段来优化查询效率,方法一和方法二分别执行不同的SQL语句,其中方法二在执行时通常会更高效,因为它可能通过减少数据处理量和优化查询结构来提升性能,比较两种方法的SQL执行情况

Mybatis-Plus查询指定字段

select word from addition;
public void test3(){
    LambdaQueryWrapper<Addition> queryWrapper = new LambdaQueryWrapper<>();
    queryWrapper.select(Addition::getWord);
     //方法一:通过stream流操作
    List<String> list = additonService.list(queryWrapper).stream().map(Addition::getWord).collect(Collectors.toList());
    //方式二:listObjs
    List<Object> list1 = additionService.listObjs(queryWrapper);
}
  • 方法一查询时执行的SQL语句为:
select * from addition;
  • 方法二执行的SQL语句为:效率更高。
select word from addition;

Mybatis-Plus只查询部分字段的三种方法

方法1

只需要查询出name和phone两个字段:使用queryWrapper的select()方法指定要查询的字段

public void selectByWrapper1() {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.select("name", "phone").eq("age",25);
        List<User> users = userMapper.selectList(queryWrapper);
        users.forEach(System.out::println);
    }

这种方法会造成除“name”之外的字段的值为null

方法2

查询出除age和address外其它所有字段的数据:同样使用queryWrapper的select()方法

public void selectByWrapper2() {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.select(User.class, info -> !info.getColumn().equals("age")
                && !info.getColumn().equals("address")).eq("name","jack");
        List<User> users = userMapper.selectList(queryWrapper);
        users.forEach(System.out::println);
    }

这种方法会造成除“age”"address"的字段的值为null

方法3

selectMaps

public void selectMaps2(){
        QueryWrapper<User> userQueryWrapper = Wrappers.query();

        userQueryWrapper.select("avg(age) avg_age" , "min(age) min_age" , "max(age) max_age")
                        .groupBy("age")
                        .having("sum(age) < {0}" , 60);
        List<Map<String , Object>> mapList = userMapper.selectMaps(userQueryWrapper);
        mapList.forEach(System.out::println);
    }

总结

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

相关文章

  • idea创建springboot项目,java版本只能选择17和21的解决方案

    idea创建springboot项目,java版本只能选择17和21的解决方案

    这篇文章主要介绍了idea创建springboot项目,java版本只能选择17和21的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • 浅析Java多线程同步synchronized

    浅析Java多线程同步synchronized

    本篇文章给大家详细分析了Java多线程同步synchronized的相关知识点,需要的读者们可以参考学习下。
    2018-02-02
  • 关于Spring源码深度解析(AOP功能源码解析)

    关于Spring源码深度解析(AOP功能源码解析)

    这篇文章主要介绍了关于Spring源码深度解析(AOP功能源码解析),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • JavaSe和JavaEE的区别原理面试题精讲

    JavaSe和JavaEE的区别原理面试题精讲

    这篇文章主要为大家介绍了JavaSe和JavaEE的区别原理面试题精讲,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Java集成swagger文档组件

    Java集成swagger文档组件

    这篇文章主要介绍了Java集成swagger文档组件,通过详细的图文介绍和代码分析展示,从头展开说明详细的过程,希望对你的开发有所帮助
    2021-06-06
  • maven如何使用slf4j输出日志到文件

    maven如何使用slf4j输出日志到文件

    这篇文章主要介绍了maven如何使用slf4j输出日志到文件,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java如何获取List<String>中的String详解

    Java如何获取List<String>中的String详解

    工作了这么长时间了,一直没有记录的习惯,以至于导致我即便是查过的东西总会忘记,下面这篇文章主要给大家介绍了关于Java如何获取List<String>中String的相关资料,需要的朋友可以参考下
    2022-02-02
  • Springboot 定时任务分布式下幂等性解决方案

    Springboot 定时任务分布式下幂等性解决方案

    这篇文章主要介绍了Springboot定时任务分布式下幂等性如何解决,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • Spring Boot如何在加载bean时优先选择我

    Spring Boot如何在加载bean时优先选择我

    这篇文章主要介绍了Spring Boot如何在加载bean时优先选择我,在 Spring Boot 应用程序中,我们可以采取三种方式实现自己的 bean 优先加载,本文通过实例代码给大家详细讲解,需要的朋友可以参考下
    2023-03-03
  • Mybatis传递多个参数的解决办法(三种)

    Mybatis传递多个参数的解决办法(三种)

    这篇文章主要介绍了Mybatis传递多个参数的解决办法(三种),个人觉得第三种解决办法比较好用,有需要的朋友一起学习吧
    2016-05-05

最新评论