码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-02-01 22:56:06      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:sts   reference   alt   tis   primary   玩转   san   wrap   inf   

每天玩转3分钟 MyBatis-Plus - 1. 配置环境

每天玩转3分钟 MyBatis-Plus - 2. 普通查询

每天玩转3分钟 MyBatis-Plus - 3. 高级查询(一)

每天玩转3分钟 MyBatis-Plus - 4. 高级查询(二)

每天玩转3分钟 MyBatis-Plus - 5. 高级查询(三)

每天玩转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 表结构如下:

idnameageemailmanager_idcreate_time
1 Jone 18 test1@baomidou.com null
2020-01-01 14:20:20
2 Jack 20 test2@baomidou.com 1
2020-01-20 14:20:20
3 Tom 28 test3@baomidou.com 2
2020-01-15 14:20:20
4 Sandy 21 test4@baomidou.com 2
2020-01-12 14:20:20
5 Billie 24 test5@baomidou.com 2
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 }

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

标签:sts   reference   alt   tis   primary   玩转   san   wrap   inf   

原文地址:https://www.cnblogs.com/jackson0714/p/study-mybatis-plus6.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!