😀前言
本篇博文是关于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连支持一下,创造不易您们的支持是我的动力🤞