每天玩转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 email
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. 普通查询的更多相关文章

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

    每天玩转3分钟 MyBatis-Plus - 1. 配置环境 每天玩转3分钟 MyBatis-Plus - 2. 普通查询 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 ...

  2. 每天玩转3分钟 MyBatis-Plus - 4. 高级查询(二)(条件构造器)

    每天玩转3分钟 MyBatis-Plus - 1. 配置环境 每天玩转3分钟 MyBatis-Plus - 2. 普通查询 每天玩转3分钟 MyBatis-Plus - 3. 高级查询(一) 每天玩转 ...

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

    每天玩转3分钟 MyBatis-Plus - 1. 配置环境 每天玩转3分钟 MyBatis-Plus - 2. 普通查询 每天玩转3分钟 MyBatis-Plus - 3. 高级查询 代码下载:ht ...

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

    每天玩转3分钟 MyBatis-Plus - 1. 配置环境 每天玩转3分钟 MyBatis-Plus - 2. 普通查询 每天玩转3分钟 MyBatis-Plus - 3. 高级查询(一) 每天玩转 ...

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

    每天玩转3分钟 MyBatis-Plus - 1. 配置环境 每天玩转3分钟 MyBatis-Plus - 2. 普通查询 每天玩转3分钟 MyBatis-Plus - 3. 高级查询(一) 每天玩转 ...

  6. MyBatis实现关联表查询

    一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...

  7. MyBatis——实现关联表查询

    原文:http://www.cnblogs.com/xdp-gacl/p/4264440.html 一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创 ...

  8. MyBatis学习总结_13_Mybatis查询之resultMap和resultType区别

    MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性 ...

  9. MyBatis 多表联合查询,字段重复的解决方法

    MyBatis 多表联合查询,两张表中字段重复时,在配置文件中,sql语句联合查询时使用字段别名,resultMap中对应的column属性使用相应的别名: <resultMap type=&q ...

随机推荐

  1. SpringSecurity登录原理(源码级讲解)

    一.简单叙述 首先会进入UsernamePasswordAuthenticationFilter并且设置权限为null和是否授权为false,然后进入ProviderManager查找支持Userna ...

  2. IE显示 “Promise”未定义,vue项目兼容ie的两种方案

    第一种方法: 直接在html中加入js链接: <script src = "https://cdn.polyfill.io/v2/polyfill.min.js">&l ...

  3. SpringBoot的四种定时任务

    定时任务实现的几种方式: Timer:这是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务. 使用这种方式可以让你的程序按照某一个频度执行 ...

  4. (摘录)ISO C++ Lambda表达式

    ISO C++ 11 标准的一大亮点是引入Lambda表达式.基本语法如下: [捕获列表](形参列表) mutable ->返回值类型 复合语句 其中除了"[]"(其中捕获列 ...

  5. linux安装python3.*,更换Python2.*

    下载并解压:Python-3.5.7.tgz [root@AH-aQYWTYSJZX01 python3]# ll total 20268 -rw-r----- 1 temp01 temp01 207 ...

  6. 百度人脸识别集成错误:Build command failed. Error while executing process F:\dev\Android\Sdk\cmake\3.6.4111459\bin\cmake.exe with arguments

    大概是这么个错误 Build command failed. Error while executing process F:\dev\Android\Sdk\cmake\3.6.4111459\bi ...

  7. Centos中Qt编译问题(/usr/bin/ld: 找不到 -lpulse-mainloop-glib,/usr/bin/ld: 找不到 -lpulse...)

    Linux下QT编写一个与视频播放的程序,出现/usr/bin/ld: 找不到 -lpulse-mainloop-glib,/usr/bin/ld: 找不到 -lpulse 解决办法: 首先find ...

  8. IDEA环境使用Git

    推送到Github 在设置中登录github账户 点击OK 将项目交给Git管理 之后项目文件就会变成红色 添加文件到暂存区 点击Add之后,项目文件会变成绿色 添加文件到本地仓库 点击Commit ...

  9. java项目中rmi远程调用实例

    1.创建一个学生实体类Student.java: package com.RMIdemo.entity; @SuppressWarnings("serial") public cl ...

  10. Python学习3月8号【python编程 从入门到实践】---》笔记(1)

    第十章:处理文件和异常 #学习处理文件,让程序能够快速地分析大量的数据#学习错误处理,避免程序在面对意外情形时崩溃#学习异常,是python创建的特殊对象,用于管理程序运行时出现#学习模块json,它 ...