前言
整合MyBaitsPlus(简称MP),是在MyBatis的基础上再升级一下,国人开发的技术,符合中国人开发习惯,谁用谁知道,这里 有我整理的 SpringBoot 整合 MyBatis 的详细步骤 。
SpringBoot 整合是十分便捷的,整合究竟核心如下:
- 导入对应技术的starter坐标
- 根据对应技术的要求做配置
1、导入对应的starter
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3</version></dependency>
2、starter写法
starter所属 | 命名规则 | 示例 |
官方提供 | spring-boot-starter-技术名称 | spring-boot-starter-web spring-boot-starter-test |
第三方提供 | 第三方技术名称-spring-boot-starter | druid-spring-boot-starter |
第三方提供 | 第三方技术名称-boot-starter(第三方技术名称过长,简化命名) | mybatis-plus-boot-starter |
3、配置数据源相关信息
#2.配置相关信息spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/mpusername: rootpassword: rootmybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl#日志实现类-->打印sql
4、映射接口(Mapper)
publicinterfaceUserMapperextendsBaseMapper<User> { }
核心在于Dao接口继承了一个BaseMapper的接口,这个接口中帮助开发者预定了若干个常用的API接口,简化了通用API接口的开发工作。
5、测试类
voidselect() { //1、查询所有,不加条件去查询userMapper.selectList(null).forEach(System.out::println); //forEach遍历打印//2、查询所有,加条件去查询//2.1、new QueryWrapperQueryWrapperqueryWrapper1=newQueryWrapper(); //2.2、设置条件queryWrapper1.eq("age", 20); /*** lt #小于* gt #大于* ne #不等于* eq #等于* le #小于等于* ge #大于等于* between #between* like like 模糊查询 #likeLeft 左模糊 likeRight 右模糊* isNull* isNotNull* in #inSql in sql语句* notIn* orderBy #排序 ASC DESC 升序降序* orderByDesc*/userMapper.selectList(queryWrapper1).forEach(System.out::println); //3、多条件去查询QueryWrapperqueryWrapper2=newQueryWrapper(); //3.1、设置多条件Map<String,Object>map=newHashMap<>(); map.put("age",20); map.put("name","张三"); //3.2、map放进queryWrapperqueryWrapper2.allEq(map); //byIdUseruser=userMapper.selectById(1); System.out.println(user); //byBatchIdsuserMapper.selectBatchIds(Arrays.asList(1,2,3)).forEach(System.out::println); //Arrays.asList(1,2,3)是一个数组,把数组转换成list集合//通过map条件查询//map只能是一个条件,不能是多个条件Map<String,Object>map1=newHashMap<>(); map1.put("age",20); map1.put("name","张三"); userMapper.selectByMap(map).forEach(System.out::println); //4、分组查询QueryWrapperqueryWrapper3=newQueryWrapper(); queryWrapper3.gt("age",20); System.out.println(userMapper.selectCount(queryWrapper3)); //将查询结果放入map中userMapper.selectMaps(queryWrapper1).forEach(System.out::println); //分页查询//1、配置类paginationInterceptor//2、设置分页参数Page<User>page=newPage<>(1,3); //当前页,每页显示条数2Page<User>userPage=userMapper.selectPage(page, null);//分页参数,查询条件System.out.println(userPage.getCurrent()); //当前页System.out.println(userPage.getSize()); //每页显示条数userPage.getRecords().forEach(System.out::println); //查询结果//封装到map中Page<Map<String,Object>>mapPage=newPage<>(1,3); //分页参数,查询条件userMapper.selectMapsPage(mapPage, null).getRecords().forEach(System.out::println); //查询结果//查询所有,只输出iduserMapper.selectObjs(null).forEach(System.out::println); //查询结果//查询一个System.out.println(userMapper.selectOne(null)); //查询结果 }
6、表的通用前缀配置
mybatis-plus: global-config: db-config: table-prefix: tb_#设置所有表的通用前缀名称为tbl_
7、MybatisX 快速开发插件
MybatisX 是一款基于 IDEA 的快速开发插件,为效率而生。
- 安装方法:打开 IDEA,进入 File -> Settings -> Plugins -> Browse Repositories,输入 mybatisx 搜索并安装。
- 功能:
- Java 与 XML 调回跳转
- Mapper 方法自动生成 XML
总结
- 手工添加MyBatis-Plus对应的starter
- 数据层接口使用BaseMapper简化开发
- 需要使用的第三方技术无法通过勾选确定时,需要手工添加坐标