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);
    }

总结

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

相关文章

  • java使用Jsoup连接网站超时的解决方法

    java使用Jsoup连接网站超时的解决方法

    jsoup是一个非常好的解析网页的包,用java开发的,提供了类似DOM,CSS选择器的方式来查找和提取文档中的内容,提取文档内容时会出现超时的情况,解决方法可看下文
    2013-11-11
  • java 实现约瑟夫环的实例代码

    java 实现约瑟夫环的实例代码

    这一次是借鉴模仿别人写的代码,以前觉得不好将数据结构的链结构什么的迁移到java上来使用,但这一次确实让我感受到了可以自己构造数据结构,然后使用类似链的方式来解决约瑟夫环,有所顿悟。不多说,继续上代码
    2013-10-10
  • DoytoQuery中关于N+1查询问题解决方案详解

    DoytoQuery中关于N+1查询问题解决方案详解

    这篇文章主要为大家介绍了DoytoQuery中关于N+1查询问题解决方案详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • java 使用HttpURLConnection发送数据简单实例

    java 使用HttpURLConnection发送数据简单实例

    这篇文章主要介绍了java 使用HttpURLConnection发送数据简单实例的相关资料,需要的朋友可以参考下
    2017-06-06
  • IDEA的Terminal无法执行git命令问题

    IDEA的Terminal无法执行git命令问题

    这篇文章主要介绍了IDEA的Terminal无法执行git命令问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 被遗忘的Java关键字transient的使用详解

    被遗忘的Java关键字transient的使用详解

    在 Java 中,transient 是一个关键字,用于指定一个类的字段(成员变量)在序列化时应该被忽略。本文将通过示例为大家简单讲讲transient的使用,需要的可以参考一下
    2023-04-04
  • 工作中Java集合的规范使用操作详解

    工作中Java集合的规范使用操作详解

    这篇文章主要为大家详细介绍了工作中Java集合使用时需要注意的规范,文中的示例代码讲解详细,对我们使用Java集合有一定的帮助,感兴趣的可以了解一下
    2022-11-11
  • IDEA搭建多模块的Maven项目方式(相互依赖)

    IDEA搭建多模块的Maven项目方式(相互依赖)

    这篇文章主要介绍了IDEA搭建多模块的Maven项目方式(相互依赖),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Java 程序初始化顺序

    Java 程序初始化顺序

    这篇文章主要介绍了Java 程序初始化顺序,在Java语言中,当实例化对象时,对象所在类的所有成员变量首先要进行初始化,只有当所有的类成员完成了初始化之后,才会调用对象所在类的构造函数创建对象,需要的朋友可以参考一下
    2022-01-01
  • 如何用java获取指定日期是第几周

    如何用java获取指定日期是第几周

    这篇文章主要给大家介绍了关于如何用java获取指定日期是第几周的相关资料,在开始之前我们需要先了解如何获取当前日期所在的年份以及第几周,在Java中可以使用Calendar类来获取这些信息,需要的朋友可以参考下
    2023-09-09

最新评论