每天玩转3分钟 MyBatis-Plus - 2. 普通查询
每天玩转3分钟 MyBatis-Plus - 1. 配置环境
每天玩转3分钟 MyBatis-Plus - 2. 普通查询
代码下载:https://github.com/Jackson0714/study-mybatis-plus.git
mybatis-plus的查询功能非常强大, 这一篇,我们来看下mybatis-plus的普通查询功能。后续文章再介绍高级查询功能。
一、创建User表
User 表结构如下:
| id | name | age | |
|---|---|---|---|
| 1 | Jone | 18 | test1@baomidou.com |
| 2 | Jack | 20 | test2@baomidou.com |
| 3 | Tom | 28 | test3@baomidou.com |
| 4 | Sandy | 21 | test4@baomidou.com |
| 5 | Billie | 24 | test5@baomidou.com |
其对应的数据库 Schema 脚本如下:
DROP TABLE IF EXISTS user;
CREATE TABLE user
(
id BIGINT(20) NOT NULL COMMENT '主键ID',
name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
age INT(11) NULL DEFAULT NULL COMMENT '年龄',
email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (id)
);
其对应的数据库 Data 脚本如下:
DELETE FROM user;
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');
二、创建基础类
2.1 User 类
package com.example.demo.entity; import lombok.Data; @Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
2.2 创建UserMapper接口,继承 MyBatis Plus BaseMapper接口
package com.example.demo.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User; public interface UserMapper extends BaseMapper<User> {
}
三、查询方法
3.1 单表查询所有记录 selectList
/*
* 描述:单表查询所有记录
* 作者:博客园-悟空聊架构
* 时间:2019-01-16
* Github:https://github.com/Jackson0714/study-mybatis-plus.git
* 博客园:https://www.cnblogs.com/jackson0714
* */
@Test
public void testSelect() {
System.out.println(("----- 单表查询所有记录------"));
List<User> userList = userMapper.selectList(null);
Assert.assertEquals(6, userList.size()); //表里面的记录总条数是否等于6,如果等于6,则测试通过
userList.forEach(System.out::println);
}
userMapper.selectList(null);
对应的SQL语句是:
SELECT id,name,age,email FROM user

如果找不到这些日志,可以点击如下按钮找到:

数据库有6条记录

查询出总条数6条,测试通过

3.2 单表根据主键id查询单条记录 selectById
/*
* 描述:单表根据主键id查询单条记录
* 作者:博客园-悟空聊架构
* 时间:2019-01-16
* Github:https://github.com/Jackson0714/study-mybatis-plus.git
* 博客园:https://www.cnblogs.com/jackson0714
* */
@Test
public void testSelectById() {
System.out.println(("----- 单表根据主键id查询单条记录 ------"));
User user = userMapper.selectById(2);
System.out.println(user);
}
1 userMapper.selectById(2)
2 对应的SQL语句为
3 SELECT id,name,age,email FROM user WHERE id=?

数据库中有一条记录

3.3 单表根据 id list 批量查询 selectBatchIds
/*
* 描述:单表根据 id list 批量查询
* 作者:博客园-悟空聊架构
* 时间:2019-01-16
* Github:https://github.com/Jackson0714/study-mybatis-plus.git
* 博客园:https://www.cnblogs.com/jackson0714
* */
@Test
public void testSelectByIds() {
System.out.println(("----- 单表根据 id list 批量查询 ------"));
List<Long> idsList = Arrays.asList(2L,4L,6L);
List<User> userList= userMapper.selectBatchIds(idsList);
userList.forEach(System.out::println);
}

userMapper.selectBatchIds(idsList);
对应的SQL语句为
SELECT id,name,age,email FROM user WHERE id IN ( ? , ? , ? )
查询结果,id=2,id=4 的查询出来了,没有 id=6 的记录

3.4 单表根据条件查询 selectByMap
/*
* 描述:单表根据条件查询
* 作者:博客园-悟空聊架构
* 时间:2019-01-19
* Github:https://github.com/Jackson0714/study-mybatis-plus.git
* 博客园:https://www.cnblogs.com/jackson0714
* */
@Test
public void testSelectByMap() {
System.out.println(("----- 单表根据条件查询 ------"));
Map<String, Object> conditions = new HashMap<>();
conditions.put("name", "Jack");
conditions.put("age", 20);
List<User> userList= userMapper.selectByMap(conditions);
userList.forEach(System.out::println);
}
userMapper.selectByMap(conditions);
对应的SQL语句为
SELECT id,name,age,email FROM user WHERE name = ? AND age = ?

数据库有一条记录,name="Jack",age=20

注意:使用slectByMap时,条件里面的字段名需要和数据库保持一致。
不然会出现以下错误:

每天玩转3分钟 MyBatis-Plus - 1. 配置环境
每天玩转3分钟 MyBatis-Plus - 2. 普通查询
关注公众号:悟空聊架构,回复pmp,领取pmp资料!回复悟空,领取架构师资料!
作 者:悟空聊架构
出 处:http://www.cnblogs.com/jackson0714/
关于作者:专注于移动开发。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!

悟空聊架构
关注我,带你每天进步一点点!
还有111本书籍赠送~~
每天玩转3分钟 MyBatis-Plus - 2. 普通查询的更多相关文章
- 每天玩转3分钟 MyBatis-Plus - 1. 配置环境
每天玩转3分钟 MyBatis-Plus - 1. 配置环境 每天玩转3分钟 MyBatis-Plus - 2. 普通查询 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 ...
- 每天玩转3分钟 MyBatis-Plus - 4. 高级查询(二)(条件构造器)
每天玩转3分钟 MyBatis-Plus - 1. 配置环境 每天玩转3分钟 MyBatis-Plus - 2. 普通查询 每天玩转3分钟 MyBatis-Plus - 3. 高级查询(一) 每天玩转 ...
- 每天玩转3分钟 MyBatis-Plus - 3. 高级查询(一)(条件构造器)
每天玩转3分钟 MyBatis-Plus - 1. 配置环境 每天玩转3分钟 MyBatis-Plus - 2. 普通查询 每天玩转3分钟 MyBatis-Plus - 3. 高级查询 代码下载:ht ...
- 每天玩转3分钟 MyBatis-Plus - 5. 高级查询(三)(条件构造器)
每天玩转3分钟 MyBatis-Plus - 1. 配置环境 每天玩转3分钟 MyBatis-Plus - 2. 普通查询 每天玩转3分钟 MyBatis-Plus - 3. 高级查询(一) 每天玩转 ...
- 每天玩转3分钟 MyBatis-Plus - 6. select 用法
每天玩转3分钟 MyBatis-Plus - 1. 配置环境 每天玩转3分钟 MyBatis-Plus - 2. 普通查询 每天玩转3分钟 MyBatis-Plus - 3. 高级查询(一) 每天玩转 ...
- MyBatis实现关联表查询
一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...
- MyBatis——实现关联表查询
原文:http://www.cnblogs.com/xdp-gacl/p/4264440.html 一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创 ...
- MyBatis学习总结_13_Mybatis查询之resultMap和resultType区别
MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性 ...
- MyBatis 多表联合查询,字段重复的解决方法
MyBatis 多表联合查询,两张表中字段重复时,在配置文件中,sql语句联合查询时使用字段别名,resultMap中对应的column属性使用相应的别名: <resultMap type=&q ...
随机推荐
- java.util.NoSuchElementException: No value present
错误: java.util.NoSuchElementException: No value present 原因: 经查询博客Java 8 Optional类深度解析发现,究其原因为: 在空的Opt ...
- 2018-2-13-win10-uwp-unix-timestamp-时间戳-转-DateTime
title author date CreateTime categories win10 uwp unix timestamp 时间戳 转 DateTime lindexi 2018-2-13 17 ...
- 2018-8-10-如何在-UWP-使用-wpf-的-Trigger-
title author date CreateTime categories 如何在 UWP 使用 wpf 的 Trigger lindexi 2018-08-10 19:16:51 +0800 2 ...
- H3C 子网划分方法
- 用Xshell连接谷歌云
谷歌云服务器,默认用浏览器进行SSH链接,而且也不告知密码.以Centos为例,先使用浏览器连接 1,给root修改密码 1 sudo passwd root 2,编辑ssh配置文件 sudo nan ...
- SmartAssembly 使用方法
SmartAssembly加壳工具,我还真的是不太喜欢给自己的程序加壳,觉得开源才是王道,但是没办法工作需要,需要有个加壳后与加壳前的对比,好吧谁叫咱只是程序员呢. 开始埋头苦干,找了半天也没找到合适 ...
- Team Foundation Server 2015使用教程【4】:默认团队权限说明
- C++Review7_STL、容器、迭代器
我之前的博文中有专门的5篇整理并介绍了STL的概念: STL1——整体介绍:https://www.cnblogs.com/grooovvve/p/10467794.html STL2——泛型编程(模 ...
- Android多媒体框架
Android系统的多媒体架构图 OpenMax做编解码作用(codec),从上到下依次是AL(应用层,在多媒体中间件和应用程序之间提供一个标准化接口).IL(集成层,解码编码器).DL(开发层,供应 ...
- Linux基础:CentOS 6重置密码
1.开机,按"e"键,进入GNU GRUB引导界面,上下键选择中间行 2.按"e"键,进入编辑界面,末行quiet后空格,输入"1"或者&q ...