返回顶部
首页 > 资讯 > 数据库 >MyBatis-Plus中查询操作知识点总结
  • 462
分享到

MyBatis-Plus中查询操作知识点总结

mybatisspringbootmysql后端maven 2023-08-31 15:08:01 462人浏览 八月长安
摘要

系列文章目录 Mybatis-Plus知识点[MyBatis+MyBatis-Plus的基础运用]_心态还需努力呀的博客-CSDN博客 Mybatis-Plus+SpringBoot结合运用_心态还需努力呀的博客-CSDN博客 MyBait

系列文章目录

Mybatis-Plus知识点[MyBatis+MyBatis-Plus的基础运用]_心态还需努力呀的博客-CSDN博客

Mybatis-Plus+SpringBoot结合运用_心态还需努力呀的博客-CSDN博客

MyBaits-Plus中@TableField和@TableId用法_心态还需努力呀的博客-CSDN博客

MyBatis-Plus删除操作知识点总结_心态还需努力呀的博客-CSDN博客

持续更新中~想学MP的多关注学习哦~


目录

系列文章目录

前言

一、通过id查询selectById方法

二、查询所条数据selectList方法

2.1 查询所有

​2.2 条件查询多条数据

三、id数组查询selectBatchIds方法

四、查询单条数据testSelectOne方法

​编辑 五、符合条件数据的个数selectCount方法

总结


前言

mybatis-Plus中的查询操作是很全面的,也是很多人在开发中最喜欢用的。因为简单使用,在写程序中大多数的操作都是查询操作,所以操作操作用MP可节省我们许多时间去编写其他流程逻辑控制等,大大简化了开发。如果你还没有什么感觉,那就看正文,让你了解MP查询的方便性和所有用到知识点的简单性。我也会带大家看源码,了解源码中方法的传入参数和返回值等。


一、通过id查询selectById方法

MP中给我们提供了通过id查询的方法selectById,查看方法的源码如下:传入的参数就是id值,通过该id值会查询表并返回一个对象。

T selectById(Serializable id);

我们编写测试方法 testSelectById(),用来测试该方法的使用。传入的参数是3,表示我们要查id为3的用户信息。

//通过id查询    //T selectById(Serializable id);    @Test    public void testSelectById(){        User user = userMapper.selectById(3L);        System.out.println(user);    }

 执行效果如下图:

分析:可看生成的sql代码中通过表的user_id字段作为条件,我们传入3做查询,最后可打印出user_id为3的用户信息。

二、查询所条数据selectList方法

selectList方法可以查询全部数据,也可通过条件查询多条数据。下面我们一个一个解释知识点用法。看下方源码可知:当设置条件时会进行条件查询,不设置条件时参数可填null。最后的返回结果是一个List集合,里面存的是每一条数据信息。

List selectList(@Param("ew") Wrapper queryWrapper);

2.1 查询所有

查询所有直接调用该方法就可以,因为没有条件,所以里面的参数为null。

// 测试查询所有selectList    @Test    public void testSelectList(){        List users = userMapper.selectList(null);        for (User user : users) {            System.out.println(user);        }    }

执行效果如下图:

分析:通过生成的sql代码可看出没有条件。直接查询所有用户的信息,控制台也相应的打印了出来结果。

2.2 条件查询多条数据

这里我们查询所有符合用户状态为0的用户信息。用户状态在数据表里字段名为user_status。

也用到了queryWrapper,这个前面讲过知识点,这里就直接用了。看不懂的可看我的专栏。这里编写测试方法testSelectListByQW(),将结果打印到控制台。

//条件查询多条数据    @Test    public void testSelectListByQW(){        QueryWrapper wrapper=new QueryWrapper<>();        //查询条件,状态为0的        wrapper.eq("user_status","0");        List users = userMapper.selectList(wrapper);        for (User user : users) {            System.out.println(user);        }    }

执行效果如下图:

分析:通过生成的sql代码可看出条件为user_status=0用户的信息,控制台也相应的打印了出来结果。用户id为3和7的用户状态为0。

三、id数组查询selectBatchIds方法

 通过id数组查询的方法和以前将的通过id数组批量删除的方法差不多。只不过一个是删除、一个是查询。所以只有返回的值不一样,在这里返回List集合。

List selectBatchIds(@Param("coll") Collection idList);

编写测试方法, 查询id为3、7、100的用户信息,通过上面查询所有的结果可看到没有id为100的数据,这里就不会进行查询该条数据,只会找到符合的数据输出。

//通过id数组查询    @Test    public void testSelectBatchIds(){        //批量查询        List users = userMapper.selectBatchIds(Arrays.asList(3L,7L,100L));        for (User user : users) {            System.out.println(user);        }    }

 执行效果图:

分析:通过生成的sql代码可看到用了in关键字,和我们上述说明是一致的。查询的结果果然没有id为100的数据,只是把数据表中有的id为3和7的打印到了控制台。 

四、查询单条数据testSelectOne方法

 通过下面的源码,可看到testSelectOne方法只能查询单个数据,他会进行判断,如果查询到的结果不是一条数据,就会抛出异常,只有查询到的数据为单条数据时才会返回一个对象。传入的参数也是条件查询。

default T selectOne(@Param("ew") Wrapper queryWrapper) {        List ts = this.selectList(queryWrapper);        if (CollectionUtils.isNotEmpty(ts)) {            if (ts.size() != 1) {                throw ExceptionUtils.mpe("One record is expected, but the query result is multiple records", new Object[0]);            } else {                return ts.get(0);            }        } else {            return null;        }    }

编写测试方法testSelectOne(),查询用户名为李四的信息。

//查询单个testSelectOne    @Test    public void testSelectOne(){        QueryWrapper wrapper= new QueryWrapper<>();        wrapper.eq("user_name","李四");        User user = userMapper.selectOne(wrapper);        System.out.println(user);    }

执行效果如下图:

分析:通过该条件查到了一条数据并打印到了控制台。

 五、符合条件数据的个数selectCount方法

通过下方的源码可看到,传入的参数还是条件,返回的结果变成了数据表中符合该条件的数据条数。这个在我们实际网站中搜索时,显示搜索到的结果共多少条就可用该方法。

Long selectCount(@Param("ew") Wrapper queryWrapper);

 编写测试方法testSelectCount(),用wrapper中的gt方法来查询id大于3的用户数据条数。

//查询符合条件数据的个数selectCount方法    @Test    public void testSelectCount(){        QueryWrapper wrapper= new QueryWrapper<>();        //gt是查询大于该值的所有信息,user表中user_id比3大的只有7,8两条数据        wrapper.gt("user_id","3");        Long count = userMapper.selectCount(wrapper);        System.out.println("查询到的个数:"+count);    }

执行效果如下图:因为我的数据库表中id大于3的数据只有id为7和8两条数据,所以最后的打印个数为2。


总结

MP的查询方法就介绍到这里,还有一个分页查询准备另写一篇文章,因为设计到的知识点比较多并且很重要,就像网站上基本都有下一页、当前第几页等。所以我们下篇文章会总结这方面的内容~

来源地址:https://blog.csdn.net/weixin_52258054/article/details/128070999

您可能感兴趣的文档:

--结束END--

本文标题: MyBatis-Plus中查询操作知识点总结

本文链接: https://lsjlt.com/news/385971.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MyBatis-Plus中查询操作知识点总结
    系列文章目录 Mybatis-Plus知识点[MyBatis+MyBatis-Plus的基础运用]_心态还需努力呀的博客-CSDN博客 Mybatis-Plus+SpringBoot结合运用_心态还需努力呀的博客-CSDN博客 MyBait...
    99+
    2023-08-31
    mybatis spring boot mysql 后端 maven
  • MyBatis-Plus删除操作知识点总结
    系列文章目录 Mybatis-Plus知识点[MyBatis+MyBatis-Plus的基础运用]_心态还需努力呀的博客-CSDN博客   Mybatis-Plus+SpringBoot结合运用_心态还需努力呀的博客-CSDN博客MyBai...
    99+
    2023-09-03
    mybatis spring boot mysql 后端 java-ee
  • MySQL查询优化必备知识点总结
    前言 查询优化本就不是一蹴而就的,需要学会使用对应的工具、借鉴别人的经验来对SQL进行优化,并且提升自己。 先来巩固一下索引的优点,检索数据快、查询稳定、存储具有顺序性避免服务器建立...
    99+
    2024-04-02
  • mysql慢查询的知识总结
    本篇内容介绍了“mysql慢查询的知识总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、什么是慢SQL?这里指的是MySQL慢查询,具体...
    99+
    2023-06-20
  • python文件操作相关知识点总结整理
    本文汇总了python文件操作相关知识点。分享给大家供大家参考,具体如下: 总是记不住API。昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件、文件夹(文件操作函数)的操作需...
    99+
    2022-06-04
    知识点 操作 文件
  • java中Supplier知识点总结
    1、说明 这个接口是提供者的意思,只有一个抽象的get,没有默认的方法和静态的方法,导入一个泛T,get方法,返回一个泛T。 supplier也用于创建对象,但与传统的创建对象语法不...
    99+
    2024-04-02
  • SQL查询语法知识梳理总结
    目录基本查询条件查询常用的条件表达式投影查询排序分页查询聚合查询分组多表查询连接查询小结基本查询 SELECT * FROM <表名> selec ...
    99+
    2024-04-02
  • Spring-data-redis操作redis知识总结
    什么是spring-data-redisspring-data-redis是spring-data模块的一部分,专门用来支持在spring管理项目对redis的操作,使用java操作redis最常用的是使用jedis,但并不是只有jedis...
    99+
    2023-05-31
    spring data redis
  • MyBatis-Plus中最简单的查询操作教程(Lambda)
    目录引言Lambda分页查询条件查询【1】多eq【2】or条件构造器自定义sql封装我们自己的Service资料总结引言 MyBatis-Plus | 最优雅最简洁地完成数据库操作 ...
    99+
    2024-04-02
  • mysql中表的知识点总结
    这篇文章主要介绍“mysql中表的知识点总结”,在日常操作中,相信很多人在mysql中表的知识点总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql中表的知识点总结”...
    99+
    2024-04-02
  • Go语言操作MySQL的知识总结
    目录一、连接1.1 下载依赖1.2 使用mysql驱动1.3 初始化连接1.4 SetMaxOpenConns1.5 SetMaxIdleConns二、CRUD2.1 建库建表2.2 查询2.3 单行查询2.4 多行查询...
    99+
    2024-04-02
  • 一文搞懂Mybatis-plus的分页查询操作
    目录1. 简单说明2. 介绍说明3. 完整配置类代码4. 示例代码5. 最后总结1. 简单说明 嗨,大家好!今天给大家分享的是Mybatis-plus 插件的分页机制,说起分页机制,...
    99+
    2024-04-02
  • Mybatis-plus的分页查询操作怎么使用
    这篇“Mybatis-plus的分页查询操作怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Mybatis-plus的...
    99+
    2023-07-02
  • Mybatis-Plus查询中如何排除标识字段
    一、查询中排除标识字段 1.1 测试查询 @Test public void findAllTest() { List<User> userList = us...
    99+
    2024-04-02
  • Python中的反射知识点总结
    通过字符串映射或修改程序运行时的状态、属性、方法, 可以通过下面这4中方法 ''' 使用getattr(object, name_str, default=None) 方...
    99+
    2024-04-02
  • Python中字典的知识点总结
    这篇文章主要讲解了“Python中字典的知识点总结”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中字典的知识点总结”吧!一、概述字典的每个键值(key=>value)对用冒...
    99+
    2023-06-02
  • Java中的引用知识点总结
    本篇内容介绍了“Java中的引用知识点总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!强引用:默认情况下,对象采用的均为强引用(这个对象的...
    99+
    2023-06-05
  • vue中的虚拟dom知识点总结
    目录一、简介二、为什么VUE引入了虚拟DOM?三、vnode1.vnode的类型四、虚拟dom的核心——patch1.patch的过程新增节点删除节点更新节点...
    99+
    2024-04-02
  • Python中set集合的知识点总结
    本篇内容介绍了“Python中set集合的知识点总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!集合的简介集合是一个无序、不重复的序列它的...
    99+
    2023-06-20
  • java中基本注解的知识点总结
    1、java.lang.Override是一个标记类型注解,它被用作标注方法.他说明了该方法是继承了父类的方法,就是重写了父类中同名方法。 @Override public vo...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作