当前位置: 首页 > news >正文

Spring Boot 整合MyBatis-Plus

😀前言
本篇博文是关于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

image-20230820115546871

基本介绍

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

image-20230820115624423

  1. 强大的CRUD 操作:内置通用Mapper、通用Service,通过少量配置即可实现单表大部分CRUD 操作,更有强大的条件构造器,满足各类使用需求

整合MyBatis-Plus 实例

需求说明/图解

  1. 将Spring Boot 和MyBatis-Plus 整合

  2. 查询数据,如图

image-20230820115726508

代码实现

  1. 创建数据库和表
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);
  1. 创建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>
  1. 修改pom.xml 引入MyBatis-Plus starter

    image-20230820122005439

 <!--引入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>
  1. 创建resources/application.yml 配置数据源参数
server:port: 9090
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/springboot_mybatisplus?useSSL=true&useUnicode=true&characterEncoding=UTF-8username: rootpassword: 123456
  1. 创建配置文件com/my/mybatisplus/config/DruidDataSourceConfig.java
@Configuration
public class DruidDataSourceConfig {@ConfigurationProperties("spring.datasource")@Beanpublic DataSource dataSource() throws SQLException {DruidDataSource druidDataSource =new DruidDataSource();return druidDataSource;}
}
  1. 测试是否能正确启动项目, 注意观察mybatis-plus 是否引入成功

image-20230820122349951

mybatis-plus 引入成功

  1. 创建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;
}
  1. 创建com/my/mybatisplus/mapper/MonsterMapper.java
/*
* 说明
* 1. BaseMapper 已经默认提供了很多crud 方法, 可以直接用
* 2. 如果BaseMapper 提供的方法不满足需要,可以再开发MonsterMapper.xml
*/
public interface MonsterMapper extends BaseMapper<Monster> {
}

image-20230820122602799

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

image-20230820122635925

  1. 创建com/my/mybatisplus/service/impl/MonsterServiceImpl.java
@Service
public class MonsterServiceImpl extends ServiceImpl<MonsterMapper, Monster> implements MonsterService {
}
  1. 创建com/my/mybatisplus/controller/MonsterController.java
@Controller
public class MonsterController {@ResourceMonsterService 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();}
}
  1. 修改com/my/mybatisplus/Application.java , 加入对Mapper 的扫描
@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

image-20230820123123713

说明:

1.如果在Mapper接口有@Mapper注解,就可以不用写@MapperScan注解

2.直接对包进行扫描,会简洁一点

启动项目,完成测试

浏览器输入: http://localhost:10000/list http://localhost:10000/monster?id=1

image-20230820123336644

image-20230820123400214

整合MyBatis-Plus 注意事项和细节

@TableName 作用

image-20230820123442214

说明 :

​ 如果这个类名Monster 和表名monster 一致,可以映射上,则@TableName 可以省略;
​ 如果这个类名Monster 和表名不一致,不能映射上,则可以通过@TableName 指定。

MyBatis-Plus starter 到底引入了哪些依赖?

image-20230820123534300

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

image-20230820123601021

image-20230820123612317

😄总结

  1. 如果类名 和表名不一致,可以通过@TableName 指定。
  2. 如果在Mapper接口有@Mapper注解,就可以不用写@MapperScan注解。

😁热门专栏推荐
Thymeleaf快速入门及其注意事项

Spring Initailizr–快速入门–SpringBoot的选择

带你了解SpringBoot支持的复杂参数–自定义对象参数-自动封装

Rest 优雅的url请求处理风格及注意事项

文章到这里就结束了,如果有什么疑问的地方请指出,诸大佬们一起来评论区一起讨论😁
希望能和诸大佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

http://www.lryc.cn/news/138982.html

相关文章:

  • CC++ 常用技巧
  • 【AndroidStudio】屏蔽小米打印
  • Tomcat的安装与介绍
  • 说点大实话丨知名技术博主 Kirito 测评云原生网关
  • 时序预测 | MATLAB实现SO-CNN-BiLSTM蛇群算法优化卷积双向长短期记忆神经网络时间序列预测
  • 简述docker的网络模式
  • MySql-8.0.34 CentOS 安装命令记录
  • 开发电子木鱼功德+1需要多少钱
  • 批处理中扩展解释%~的相关知识和用法,并给出示例和实际运行结果展示
  • LA@向量组间的表示关系
  • Mybatis与Spring集成
  • AMBA总线协议(0)——目录与传送门
  • R语言快速生成三线表(1)
  • 【动手学深度学习】--20.目标检测和边界框
  • 实验八 网卡驱动移植
  • Linux的Man Page知识记录
  • RTSP/Onvif视频服务器EasyNVR安防视频云服务调用接口录像会被自动删除的问题解决方案
  • 几个nlp的小项目(文本分类)
  • MFC——base编码和json数据
  • SQL Server、MySQL和Oracle数据库分页查询的区别与联系
  • Qt跨平台无边框窗口探索记录
  • 概念解析 | 电磁计算的新篇章:智能电磁计算
  • SpringBoot-1-Spring Boot实战:快速搭建你的第一个应用,以及了解原理
  • Web服务器基础 http协议
  • 采用 SVG 实现 web 绘图软件的技术分享
  • Qt --- QTimer
  • 计算机终端核心安全配置规范
  • 【Spring Boot】什么是深度优先遍历与广度优先遍历?用Spring Boot项目举例说明。
  • MetaMask Mobile +Chrome DevTools 调试Web3应用教程
  • 栈和队列OJ题