😀前言
本篇博文是关于Spring Boot 整合MyBatis-Plus的,希望你能够喜欢😊
🏠个人主页:晨犀主页
 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉
💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
 如果文章有什么需要改进的地方还请大佬不吝赐教 先在此感谢啦😊
文章目录
- Spring Boot 整合MyBatis-Plus
 - 官方文档
 - 基本介绍
 - 整合MyBatis-Plus 实例
 - 需求说明/图解
 - 代码实现
 - 启动项目,完成测试
 
- 整合MyBatis-Plus 注意事项和细节
 - @TableName 作用
 - MyBatis-Plus starter 到底引入了哪些依赖?
 
- 😄总结
 
Spring Boot 整合MyBatis-Plus
官方文档
MyBatis-Plus 官网https://baomidou.com

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

- 强大的CRUD 操作:内置通用Mapper、通用Service,通过少量配置即可实现单表大部分CRUD 操作,更有强大的条件构造器,满足各类使用需求
 
整合MyBatis-Plus 实例
需求说明/图解
-  
将Spring Boot 和MyBatis-Plus 整合
 -  
查询数据,如图
 

代码实现
- 创建数据库和表
 
CREATE DATABASE `springboot_mybatisplus`
USE `springboot_mybatisplus`
CREATE TABLE `monster` (
`id` INT NOT NULL AUTO_INCREMENT,
`age` INT NOT NULL,
`birthday` DATE DEFAULT NULL,
`email` VARCHAR(255) DEFAULT NULL,
`gender` CHAR(1) DEFAULT NULL,
`name` VARCHAR(255) DEFAULT NULL,
`salary` DOUBLE NOT NULL,
PRIMARY KEY (`id`)
) CHARSET=utf8
SELECT * FROM `monster`
INSERT INTO monster VALUES(NULL, 20, '2000-11-11', 'xzj@sohu.com', ' 男', ' 蝎子精',15000.88);
INSERT INTO monster VALUES(NULL, 10, '2011-11-11', 'ytj@sohu.com', ' 女', ' 玉兔精',18000.88);
 
- 创建springboot_mybatisplus 项目
-pom.xml 引入必要的依赖 
 <!--引入必要的依赖-->
    <dependencies>
        <!--引入web starter-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--引入mysql驱动: 这里使用版本仲裁 8.0.26-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--引入配置处理器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
        </dependency>
        <!--引入lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!--引入test starter-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <!--引入druid依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.17</version>
        </dependency>
    </dependencies>
 
-  
修改pom.xml 引入MyBatis-Plus starter

 
 <!--引入mybatis-plus starter-->
        <!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3</version>
        </dependency>
 
- 创建resources/application.yml 配置数据源参数
 
server:
  port: 9090
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/springboot_mybatisplus?useSSL=true&useUnicode=true&characterEncoding=UTF-8
    username: root
    password: 123456
 
- 创建配置文件com/my/mybatisplus/config/DruidDataSourceConfig.java
 
@Configuration
public class DruidDataSourceConfig {
    @ConfigurationProperties("spring.datasource")
    @Bean
    public DataSource dataSource() throws SQLException {
        DruidDataSource druidDataSource =
                new DruidDataSource();
        return druidDataSource;
    }
}
 
- 测试是否能正确启动项目, 注意观察mybatis-plus 是否引入成功
 

mybatis-plus 引入成功
- 创建com/my/mybatisplus/bean/Monster.java
 
@Data
//说明:
//1. 如果这个类名Monster 和表名monster 一致,可以映射上,则@TableName 可以省略
//2. 如果这个类名Monster 和表名不一致,不能映射上,则@TableName 可以指定
@TableName("monster")
public class Monster {
    private Integer id;
    private Integer age;
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date birthday;
    private String email;
    private String name;
    private String gender;
    private Double salary;
}
 
- 创建com/my/mybatisplus/mapper/MonsterMapper.java
 
/*
* 说明
* 1. BaseMapper 已经默认提供了很多crud 方法, 可以直接用
* 2. 如果BaseMapper 提供的方法不满足需要,可以再开发MonsterMapper.xml
*/
public interface MonsterMapper extends BaseMapper<Monster> {
}
 

- 创建com/my/mybatisplus/service/MonsterService.java
 
/**
* 说明
* 1. IService 提供了很多crud 方法, 底层调用的是BaseMapper 的方法
* 2. 如果默认提供的方法,不能满足需求,再开发需要的方法即可
*/
public interface MonsterService extends IService<Monster> {
}
 

- 创建com/my/mybatisplus/service/impl/MonsterServiceImpl.java
 
@Service
public class MonsterServiceImpl extends ServiceImpl<MonsterMapper, Monster> implements MonsterService {
}
 
- 创建com/my/mybatisplus/controller/MonsterController.java
 
@Controller
public class MonsterController {
    @Resource
    MonsterService monsterService;
    
    @ResponseBody
    @GetMapping("/monster")
    public Monster getByMonsterId(@RequestParam("id") Integer id) {
    	return monsterService.getById(id);
    }
    @ResponseBody
    @GetMapping("/list")
    public List<Monster> listMonster() {
    	return monsterService.list();
    }
}
 
- 修改com/my/mybatisplus/Application.java , 加入对Mapper 的扫描
 
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
 

说明:
1.如果在Mapper接口有@Mapper注解,就可以不用写@MapperScan注解
2.直接对包进行扫描,会简洁一点
启动项目,完成测试
浏览器输入: http://localhost:10000/list http://localhost:10000/monster?id=1


整合MyBatis-Plus 注意事项和细节
@TableName 作用

说明 :
 如果这个类名Monster 和表名monster 一致,可以映射上,则@TableName 可以省略;
  如果这个类名Monster 和表名不一致,不能映射上,则可以通过@TableName 指定。
MyBatis-Plus starter 到底引入了哪些依赖?

- 为了开发方便, 可以安装MyBatisX 插件, 参考文档:https://baomidou.com/guide/mybatisx-idea-plugin.html
 


😄总结
- 如果类名 和表名不一致,可以通过@TableName 指定。
 - 如果在Mapper接口有@Mapper注解,就可以不用写@MapperScan注解。
 
😁热门专栏推荐
 Thymeleaf快速入门及其注意事项
Spring Initailizr–快速入门–SpringBoot的选择
带你了解SpringBoot支持的复杂参数–自定义对象参数-自动封装
Rest 优雅的url请求处理风格及注意事项
文章到这里就结束了,如果有什么疑问的地方请指出,诸大佬们一起来评论区一起讨论😁
希望能和诸大佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞



















