专栏首页悟空聊架构 | 公众号每天玩转3分钟 MyBatis-Plus - 6. select 用法

每天玩转3分钟 MyBatis-Plus - 6. select 用法

代码下载:https://github.com/Jackson0714/study-mybatis-plus.git

mybatis-plus的查询功能非常强大, 上一篇,我们通过例题的方式讲解了mybatis-plus的高级查询功能:条件查询.

这一篇我们继续以例题的方式讲解mybatis-plus的 select 查询功能。

准备数据

#创建用户表
CREATE TABLE user (
    id BIGINT(20) PRIMARY KEY NOT NULL COMMENT '主键',
    name VARCHAR(30) DEFAULT NULL COMMENT '姓名',
    age INT(11) DEFAULT NULL COMMENT '年龄',
    email VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
    manager_id BIGINT(20) DEFAULT NULL COMMENT '直属上级id',
    create_time DATETIME DEFAULT NULL COMMENT '创建时间',
    CONSTRAINT manager_fk FOREIGN KEY (manager_id)
        REFERENCES user (id)
)  ENGINE=INNODB CHARSET=UTF8;

#初始化数据:
INSERT INTO user (id, name, age, email, manager_id
    , create_time)
VALUES (1087982257332887553, '大boss', 40, 'boss@baomidou.com', NULL, '2019-01-11 14:20:20'),
    (1088248166370832385, '王天风', 25, 'wtf@baomidou.com', 1087982257332887553, '2019-02-05 11:12:22'),
    (1088250446457389058, '李艺伟', 28, 'lyw@baomidou.com', 1088248166370832385, '2019-02-14 08:31:16'),
    (1094590409767661570, '张雨琪', 31, 'zjq@baomidou.com', 1088248166370832385, '2019-01-14 09:15:15'),
    (1094592041087729666, '刘红雨', 32, 'lhm@baomidou.com', 1088248166370832385, '2019-01-14 09:48:16');

User 表结构如下:

id

name

age

email

manager_id

create_time

1

Jone

18

test1@baomidou.com

null

2020-01-01 14:20:20

2020-01-01 14:20:20

2020-01-01 14:20:20

2

Jack

20

test2@baomidou.com

1

2020-01-20 14:20:20

2020-01-20 14:20:20

2020-01-20 14:20:20

3

Tom

28

test3@baomidou.com

2

2020-01-15 14:20:20

2020-01-15 14:20:20

2020-01-15 14:20:20

4

Sandy

21

test4@baomidou.com

2

2020-01-12 14:20:20

2020-01-12 14:20:20

2020-01-12 14:20:20

5

Billie

24

test5@baomidou.com

2

2020-01-22 14:20:20

2020-01-22 14:20:20

2020-01-22 14:20:20

一、案例汇总(第四波)

1.1 查询年龄为20、21、25、26的用户,且只返回id和name字段

难度系数 ★

1.2 查询年龄为20、21、25、26的用户,且只返回id、name、manager_id字段

难度系数 ★★

二、案例讲解

1.1 查询年龄为20、21、25、26的用户,且只返回id和name字段

难度系数 ★

考察 select 用法

 1 /*
 2  * 描述:例1.9 查询年龄为20、21、25、26的用户,且只返回id和name字段
 3  * SQL语句:SELECT id,name FROM user WHERE age IN (20,21,25,26)
 4  * 作者:博客园-悟空聊架构
 5  * 时间:2019-02-01
 6  * Github:https://github.com/Jackson0714/study-mybatis-plus.git
 7  * 博客园:https://www.cnblogs.com/jackson0714
 8  * */
 9 @Test
10 public void testSelectByQueryWrapper9() {
11     System.out.println(("----- 查询年龄为20、21、25、26的用户,且只返回id和name字段 ------"));
12     QueryWrapper<User> queryWrapper = new QueryWrapper<>();
13     queryWrapper.in("age", Arrays.asList(20,21,25,26)).select("id","name"); // 针对字段少的情况
14     List<User> userList = userMapper.selectList(queryWrapper);
15     userList.forEach(System.out::println);
16 }

查询日志:

查询结果:

1.2 查询年龄为20、21、25、26的用户,且只返回id、name、manager_id字段

难度系数 ★★

考察 select 用法

 1 /*
 2  * 描述:例1.10 查询年龄为20、21、25、26的用户,且只返回id、name、manager_id 字段
 3  * SQL语句:SELECT id,name,manager_id FROM user WHERE age IN (20,21,25,26)
 4  * 作者:博客园-悟空聊架构
 5  * 时间:2019-02-01
 6  * Github:https://github.com/Jackson0714/study-mybatis-plus.git
 7  * 博客园:https://www.cnblogs.com/jackson0714
 8  * */
 9 @Test
10 public void testSelectByQueryWrapper10() {
11     System.out.println(("----- 查询年龄为20、21、25、26的用户,且只返回id、name、manager_id 字段 ------"));
12     QueryWrapper<User> queryWrapper = new QueryWrapper<>();
13     queryWrapper.in("age", Arrays.asList(20,21,25,26)) // 针对字段多的情况,用排除字段的方式
14             .select(User.class, info->!info.getColumn()
15                     .equals(("email")) && !info.getColumn().equals("create_time"));
16 
17     List<User> userList = userMapper.selectList(queryWrapper);
18     userList.forEach(System.out::println);
19 }

 查询日志:

 查询结果:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 每天玩转3分钟 MyBatis-Plus - 5. 高级查询(三)(条件构造器)

    代码下载:https://github.com/Jackson0714/study-mybatis-plus.git

    悟空聊架构
  • 18.SpringCloud实战项目-SpringCloud整合OpenFeign远程调用

    用户微服务passjava-member调用学习微服务passjava-study的方法

    悟空聊架构
  • 18.SpringCloud实战项目- 整合OpenFeign实现声明式远程调用

    用户微服务passjava-member调用学习微服务passjava-study的方法

    悟空聊架构
  • 学界 | 20年后的机器人不如猫?Google的AI专家和Amazon的VP打了一个赌

    “很多人预测在20年内出现人类水平的人工智能,我认为这太乐观了。我愿意打一个赌,赌20年内,我们的技术不足以制造出一个感觉运动控制能达到家猫水准的机器人。” 想...

    AI科技评论
  • java中List对象列表去重或取出以及排序

    面试碰到几次list的去重和排序。下面介绍一种做法: 1. list去重 1.1 实体类Student List<Student>容量10k以上,要求去重复。这...

    Ryan-Miao
  • 常用阻塞队列 BlockingQueue 有哪些?

    之前,介绍了一下 ThreadPoolExecutor 的各参数的含义(并发编程之线程池ThreadPoolExecutor),其中有一个 BlockingQu...

    烟雨星空
  • Python:What the f*ck Python(上)

    说明: 这些行为是由于 CPython 在编译优化时,某些情况下会尝试使用已经存在的不可变对象而不是每次都创建一个新对象。这种行为被称作字符串的驻留[stri...

    丹枫无迹
  • 当年戴VR开真车的那群人...最近他们玩出了更牛掰的克隆对决...

    话说,去年的时候,有过这么一个事儿。 当时嘉实多极护找来了英国Top Gear的Stig兄——Ben Collins,和美国极限运动的高手——漂移车手Matt ...

    静一
  • 18.5.31日报

    1,跟进神马搜索在加了ucbrowser的ua后打不开的问题,最后发现都是这样,包括chrome。所以不管了

    龙泉寺扫地僧
  • Springboot+ajax传输json数组以及单条数据的方法

    Dream城堡

扫码关注云+社区

领取腾讯云代金券