栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot图文教程11—从此不写mapper文件「SpringBoot集成MybatisPlus」

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot图文教程11—从此不写mapper文件「SpringBoot集成MybatisPlus」

有天上飞的概念,就要有落地的实现

  • 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍

  • 先赞后看,养成习惯

SpringBoot 图文教程系列文章目录

  1. SpringBoot图文教程1「概念+案例 思维导图」「基础篇上」
  2. SpringBoot图文教程2—日志的使用「logback」「log4j」
  3. SpringBoot图文教程3—「‘初恋’情结」集成Jsp
  4. SpringBoot图文教程4—SpringBoot 实现文件上传下载
  5. SpringBoot图文教程5—SpringBoot 中使用Aop
  6. SpringBoot图文教程6—SpringBoot中过滤器的使用
  7. SpringBoot图文教程7—SpringBoot拦截器的使用姿势这都有
  8. SpringBoot图文教程8 — SpringBoot集成MBG「代码生成器」
  9. SpringBoot图文教程9—SpringBoot 导入导出 Excel 「Apache Poi」
  10. SpringBoot图文教程10—模板导出|百万数据Excel导出|图片导出「easypoi」
前言

在使用Mybatis进行项目开发的时候,最繁琐的事情就是实体类,dao接口,mapper.xml文件的编写,几乎每个表都需要对应写一套,并且大部分的工作量都在最基本的增删改查上。如果表中的字段进行了修改,那么实体类,mapper文件甚至dao接口都要进行修改。

在之前的文章中介绍了 MBG(Mybatis 代码生成器) 的使用,今天带来更进一步的简化Mybatis开发的工具 MybatisPlus,后续还会有 通用Mapper,总有一款适合你。

MybatisPlus

MybatisPlus 可以认为一个Mybatis的外挂,用了这个技术之后 可以不写mapper文件 可以不写dao接口中的方法 然后实现增删改查 分页查询 条件查询 等等

什么是Mybatis Plus

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

在 MyBatis 的基础上只做增强不做改变

意味着 如果你导入了Mybatisplus的依赖 但是不想用Mybatisplus的方法 ,那么 不会影响到Mybatis的正常使用

官方文档:https://mp.baomidou.com/guide/crud-interface.html#page

MybatisPlus的使用 集成项目
  1. 导入Mybatisplus的依赖

    注意:要首先删除Mybatis的依赖,因为Mybatisplus中包含有Mybatis的依赖 不需要独立导入 容易jar包冲突

 
   
com.baomidou
mybatis-plus-boot-starter
3.3.1.tmp
   
  
  1. 修改配置文件

通过MybatisPlus实现增删改查

教程新手向,只讲解Mybatis最常用,最基本的API,更多的操作请参考官方文档
demo使用到的数据库库表如下

  1. 给要数据库操作的实体类加Mybatisplus的注解

    因为Mybatisplus不需要写mapper文件 不需要写sql 那么Mybatisplus怎么知道实体类和数据库表映射关系(ORM) 通过注解表明这种关系

   
   @TableName("cmfz_admin")
   @Data
   public class CmfzAdmin implements Serializable {

@TableId(value = "id",type = IdType.AUTO)
private Integer id;

@TableField("username")
private String username;
   
@TableField("password")
private String password;
   
   }
  1. 创建dao接口

    import com.baizhi.entity.CmfzAdmin;
    import com.baomidou.mybatisplus.core.mapper.baseMapper;
    
    
    public interface CmfzAdminDao extends baseMapper {
    }
    
  2. 直接使用Mybatisplus的方法 开始增删改查

        @Test
        public void contextLoads() {
    // 根据id查询
     CmfzAdmin cmfzAdmin = cmfzAdminDao.selectById(1);
    // System.out.println(cmfzAdmin);
    
    // 查询所有  selectList(null);
     List cmfzAdmins = cmfzAdminDao.selectList(null);
     for (CmfzAdmin admin : cmfzAdmins) {
         System.out.println(admin);
     }
        }
    
        
        @Test
        public void test1(){
    // 创建一个对象
     CmfzAdmin cmfzAdmin = new CmfzAdmin();
     cmfzAdmin.setUsername("hhhh");
     cmfzAdmin.setPassword("123456");
    
    // 添加  返回值是成功的条数
     int insert = cmfzAdminDao.insert(cmfzAdmin);
     System.out.println(insert);
        }
    
        
        @Test
        public void test2(){
     CmfzAdmin cmfzAdmin = new CmfzAdmin();
     cmfzAdmin.setId(5);
     cmfzAdmin.setUsername("lisi");
    
    // 根据id更新数据
     int i = cmfzAdminDao.updateById(cmfzAdmin);
    
    // 删除
     
     
        }
    
实现条件查询 (条件构造器的使用)
 
    @Test
    public void test4(){
 
// 1.创建一个条件构造器 泛型 为要查询数据的实体类类型
 QueryWrapper queryWrapper = new QueryWrapper<>();

// 2.将 where username = zhangsan 等值查询 这个条件封装到 条件构造器
 // username = zhangsan ---》 eq("username","zhangsan") 参数1 字段名 参数2 要查询的值
 queryWrapper.eq("username","zhangsan");

// 3.通过条件构造器 查询
 CmfzAdmin cmfzAdmin = cmfzAdminDao.selectOne(queryWrapper);

 System.out.println(cmfzAdmin);
    }

    
    @Test
    public void test5(){
// 1.创建条件构造器
 QueryWrapper queryWrapper = new QueryWrapper<>();

// 2.构造条件  条件构造器的方法的第一个参数基本上都是字段名
 queryWrapper.eq("username","lisi").or().eq("password","123456");

// 3.查询
 
 List cmfzAdmins = cmfzAdminDao.selectList(queryWrapper);

 for (CmfzAdmin cmfzAdmin : cmfzAdmins) {
     System.out.println(cmfzAdmin);
 }
    }

条件修改:把用户名为zhangsan的管理员密码修改为123456

 
    @Test
    public void test6(){
// 1.创建条件构造器
 UpdateWrapper updateWrapper = new UpdateWrapper<>();

// 2.构造条件
// where username = zhangsan
// set password = 123456
 updateWrapper.set("password","123123");

 updateWrapper.eq("username","zhangsan");

// 3.使用方法修改
 
 cmfzAdminDao.update(null,updateWrapper);
    }
实现分页查询
  1. 配置分页插件 配置在启动类中即可

    @Bean
        public PaginationInterceptor paginationInterceptor() {
     PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
     // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false
     // paginationInterceptor.setOverflow(false);
     // 设置最大单页限制数量,默认 500 条,-1 不受限制
     // paginationInterceptor.setLimit(500);
     // 开启 count 的 join 优化,只针对部分 left join
     paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
     return paginationInterceptor;
        }
    
  2. 直接在代码可以使用分页查询

    
        @Test
        public void test7(){
    
    // 1.创建一个page对象 封装分页数据
     
     Page adminPage = new Page<>(2,2);
    
    // 2.使用分页查询的方法
     
     Page cmfzAdminPage = cmfzAdminDao.selectPage(adminPage, null);
    
    // 3.从Page对象中获取查询到的数据
     
     System.out.println("总条数:"+cmfzAdminPage.getTotal());
    
     List adminList = cmfzAdminPage.getRecords();
     for (CmfzAdmin cmfzAdmin : adminList) {
         System.out.println(cmfzAdmin);
     }
    
        }
    
总结

Tips:关于在SpringBoot项目中简化Mybatis的开发,本教程提供三个技术 MBG,MybatisPlus,通用Mapper,总有一款适合你。

恭喜你完成了本章的学习,为你鼓掌!如果本文对你有帮助,请帮忙点赞,评论,转发,这对作者很重要,谢谢。

让我们再次回顾本文的学习目标

  • 掌握SpringBoot中MybatisPlus的使用

要掌握SpringBoot更多的用法,请持续关注本系列教程。

求关注,求点赞,求转发
转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号