zoukankan      html  css  js  c++  java
  • 每天玩转3分钟 MyBatis-Plus

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

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

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

    mybatis-plus的查询功能非常强大, 这一篇,我们来看下mybatis-plus的普通查询功能。后续文章再介绍高级查询功能。

    一、创建User表

    User 表结构如下:

    idnameageemail
    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 类

     1 package com.example.demo.entity;
     2  
     3 import lombok.Data;
     4  
     5 @Data
     6 public class User {
     7     private Long id;
     8     private String name;
     9     private Integer age;
    10     private String email;
    11 }

    2.2 创建UserMapper接口,继承 MyBatis Plus BaseMapper接口

    1 package com.example.demo.mapper;
    2 
    3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    4 import com.example.demo.entity.User;
    5 
    6 public interface UserMapper extends BaseMapper<User> {
    7 }  

    三、查询方法

    3.1 单表查询所有记录 selectList

     1     /*
     2     * 描述:单表查询所有记录
     3     * 作者:博客园-悟空聊架构
     4     * 时间:2019-01-16
     5     * Github:https://github.com/Jackson0714/study-mybatis-plus.git
     6     * 博客园:https://www.cnblogs.com/jackson0714
     7     * */
     8     @Test
     9     public void testSelect() {
    10         System.out.println(("----- 单表查询所有记录------"));
    11         List<User> userList = userMapper.selectList(null);
    12         Assert.assertEquals(6, userList.size()); //表里面的记录总条数是否等于6,如果等于6,则测试通过
    13         userList.forEach(System.out::println);
    14     }
    userMapper.selectList(null);
    对应的SQL语句是:
    SELECT id,name,age,email FROM user

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

    数据库有6条记录

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

     3.2 单表根据主键id查询单条记录 selectById

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

    数据库中有一条记录

    3.3 单表根据 id list 批量查询 selectBatchIds

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

    userMapper.selectBatchIds(idsList);
    对应的SQL语句为
    SELECT id,name,age,email FROM user WHERE id IN ( ? , ? , ? ) 
    

    查询结果,id=2,id=4 的查询出来了,没有 id=6 的记录

     3.4 单表根据条件查询 selectByMap

     1      /*
     2      * 描述:单表根据条件查询
     3      * 作者:博客园-悟空聊架构
     4      * 时间:2019-01-19
     5      * Github:https://github.com/Jackson0714/study-mybatis-plus.git
     6      * 博客园:https://www.cnblogs.com/jackson0714
     7      * */
     8     @Test
     9     public void testSelectByMap() {
    10         System.out.println(("----- 单表根据条件查询 ------"));
    11         Map<String, Object> conditions = new HashMap<>();
    12         conditions.put("name", "Jack");
    13         conditions.put("age", 20);
    14         List<User> userList= userMapper.selectByMap(conditions);
    15         userList.forEach(System.out::println);
    16     }
    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本书籍赠送~~

  • 相关阅读:
    1869六度分离
    hdu 2066 一个人的旅行
    HDU1424搬寝室
    poj 1511 Invitation Cards
    hdu 3999The order of a Tree
    hdu 2680 Choose the best route
    Hdu 3117 Fibonacci Numbers
    hdu 2962 Trucking
    钽电容黑色和黄色的区别
    ALTER FPGA通过软件设置上拉(转)
  • 原文地址:https://www.cnblogs.com/jackson0714/p/study-mybatis-plus2.html
Copyright © 2011-2022 走看看