SpringBoot 整合 Mybatis-plus(二) CRUD使用 + 分页插件使用

   日期:2020-05-14     浏览:115    评论:0    
核心提示:SpringBoot 整合 Mybatis-plus 【二】一、MP中简单的CRUD1. 前提准备2. 查询相关2.1 查询所有 selectAll2.2 通过ID查询 selectById2.3 条件查询2.4 模糊查询 like3. 插入一、MP中简单的CRUD1. 前提准备目录结构User.java 实体类数据库表结构表数据2. 查询相关2.1 查询所有 selectAll代码 @Testjava

SpringBoot 整合 Mybatis-plus 【二】

    • 一、MP中简单的CRUD
      • 1. 预先准备
      • 2. 查询操作(select)
        • 2.1 查询所有 selectAll
        • 2.2 通过ID查询 selectById
        • 2.3 条件查询
        • 2.4 模糊查询 like
      • 3. 插入操作(insert)
        • 3.1 插入一条 insert
      • 4. 修改操作(update)
        • 4.1 通过id修改 updateById
        • 4.2 批量修改(通过条件修改)
      • 5. 删除操作(delete)
        • 5.1 根据id删除 deleteById
        • 5.2 批量删除(根据条件删除)
    • 二、分页插件使用
      • 1. 预先配置
        • 1.1 目录结构
        • 1.2 预先config 配置
      • 2、分页查询测试
        • 2.1 非条件分页查询
        • 2.2 带条件分页查询

一、MP中简单的CRUD

1. 预先准备

  • 目录结构

  • User.java 实体类

  • 数据库表结构

  • 表数据

2. 查询操作(select)

2.1 查询所有 selectAll

  • 代码

        
        @Test
        public void testSelectAll() {
            List<User> userList = userMapper.selectList(null);
            userList.forEach(user -> System.out.println("user: " + user));
        }
    
  • 运行结果

2.2 通过ID查询 selectById

  • 代码

    	
        @Test
        public void testSelectById(){
            User user = userMapper.selectById("2");
            System.out.println("user: " + user);
        }
    
  • 运行结果

2.3 条件查询

  • 代码 (除此之外还有 between 等方法)

        
        @Test
        public void testSelect(){
            QueryWrapper<User> queryWrapper = new QueryWrapper<>();
            queryWrapper.eq("age", "18");  // 设置等值查询 age = 18
    // queryWrapper.lt("age", "18"); // 设置小于查询 age < 18
    // queryWrapper.le("age", "18"); // 设置小于等于查询 age <= 18
    // queryWrapper.gt("age", "18"); // 设置大于查询 age > 18
    // queryWrapper.ge("age", "18"); // 设置大于等于查询 age >= 18
            List<User> users = userMapper.selectList(queryWrapper);
            users.forEach(user -> System.out.println("user: " + user));
        }
    
  • 运行结果

2.4 模糊查询 like

  • 代码

        
        @Test
        public void testSelectLike(){
            QueryWrapper<User> queryWrapper = new QueryWrapper<>();
            //注意: column 需要是数据库中的表字段,而不是实体类中的
            queryWrapper.like("name", "李");    //like %?%
            //queryWrapper.likeLeft("name", "zh"); //like %?% 以 XXX 结尾
            //queryWrapper.likeRight("name", "李"); //like ?% 以 XXX 开头
            List<User> users = userMapper.selectList(queryWrapper);
            users.forEach(user -> System.out.println("user:" + user));
        }
    
  • 运行结果

3. 插入操作(insert)

3.1 插入一条 insert

  • 代码

        
        @Test
        public void testInsertUser(){
            User user = new User();
            user.setName("小天儿").setAge(18).setEmail("tt@test.com");
            userMapper.insert(user);
        }
    
  • 运行结果
    数据库中 新增一条数据

4. 修改操作(update)

4.1 通过id修改 updateById

  • 代码

        
        @Test
        public void testUpdateById(){
            User user = userMapper.selectById("1");
            user.setName("张三02");
            userMapper.updateById(user);
        }
    
  • 运行结果
    查看数据库 修改成功 (张三 – > 张三02)

4.2 批量修改(通过条件修改)

  • 代码 (将 age = 18 的邮箱统一修改)

        
        @Test
        public void testUpdate(){
            User user = new User();
            user.setEmail("age18@testUpdate.com");
            QueryWrapper<User> updateWrapper = new QueryWrapper<>();
            updateWrapper.eq("age", "18");
            
            userMapper.update(user, updateWrapper);
        }
    
  • 运行结果
    可看到数据库中 age=18 的 用户,邮箱已统一修改为 age18@testUpdate.com

5. 删除操作(delete)

5.1 根据id删除 deleteById

  • 代码

        
        @Test
        public void testDeleteById(){
            userMapper.deleteById("4");
        }
    
  • 运行结果
    可查看到数据库中 id = 4 的用户已被删除

5.2 批量删除(根据条件删除)

  • 代码(删除 age > 18 的所有用户)

        
        @Test
        public void testDelete(){
            QueryWrapper<User> queryWrapper = new QueryWrapper<>();
            queryWrapper.gt("age", "18");  // 查询 年龄 大于 18 的用户
            userMapper.delete(queryWrapper);
        }
    
  • 运行结果
    数据库表中可以看到 age > 18 的 id 为5号、6号用户已被删除

二、分页插件使用

1. 预先配置

1.1 目录结构

在上面的基础上新建 config 包,存放config配置文件

1.2 预先config 配置

  • 代码

    package com.demo.xiaotianer.mybatis.plus.config;
    
    import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.transaction.annotation.EnableTransactionManagement;
    
    @EnableTransactionManagement
    @Configuration
    @MapperScan("com.demo.xiaotianer.mybatis.plus.mapper") //Dao接口所在包
    public class MybatisPlusConfig {
    
        
        @Bean
        public PaginationInterceptor paginationInterceptor() {
            PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
            return paginationInterceptor;
        }
    
    }
    
    
  • 注意
    1、 使用分页查询必须设置mybatis-plus 提供的分页插件,才能实现分页效果。
    2、目前分页插件仅仅支持 单表查询
    3、注意引入的注解,不要引错了~

    @EnableTransactionManagement
    @Configuration
    @MapperScan("com.demo.xiaotianer.mybatis.plus.mapper") //Dao接口所在包
    

2、分页查询测试

2.1 非条件分页查询

  • 代码示例

        
        @Test
        public void testSelectPage(){
            //参数 1:当前页(默认值 1); 参数 2 : 每页展示条数(默认值 10)
            IPage<User> page = new Page<>(1, 2);
            page = userMapper.selectPage(page, null);
    
            long total = page.getTotal();
            System.out.println("总条数:" + total);
            page.getRecords().forEach(user -> System.out.println("user: " + user));
        }
    
  • 运行结果展示

2.2 带条件分页查询

  • 代码示例

        
        @Test
        public void testFindPage(){
            QueryWrapper<User> queryWrapper = new QueryWrapper<>();
            queryWrapper.eq("age", "18");  // age = 18
    
            //参数 1:当前页(默认值 1); 参数 2 : 每页展示条数(默认值 10)
            IPage<User> page = new Page<>(1, 2);
            page = userMapper.selectPage(page, queryWrapper);
            page.getRecords().forEach(user -> System.out.println("user: " + user));
        }
    
  • 运行结果展示

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服