Spring Boot 整合MyBatis-Plus

news/2024/11/8 12:10:07/

😀前言
本篇博文是关于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.ppmy.cn/news/1059859.html

相关文章

IDEA插件反编译jar包

安装插件Java Decompiler 安装插件Java Decompiler成功之后重启idea 找到已安装插件的jar包 执行反编译 反编译 在已安装插件Java Decompiler的jar包位置下cmd命令执行反编译 java -cp "插件路径" org.jetbrains.java.decompiler.main.decompiler.ConsoleDec…

【谷粒商城】开发篇:微服务架构搭建

项目架构搭建 创建代码仓库 步骤一&#xff1a;在gitee中创建代码仓库 步骤二&#xff1a;在IDEA中 clone 项目 clone 结果展示 项目微服务创建 商品服务、仓储服务、订单服务、优惠券服务、用户服务 商品微服务创建 商品微服务创建 使用 Spring Initializr 创建微服务 通过…

Android Camere开发入门(2):Camera2的使用

Android Camere开发入门(2):Camera2的使用 Camera2 API简介 在上一篇文章《Android Camere开发入门(1):Camera1的使用》中,我们了解了如何在Android应用中使用Camera API来访问设备的摄像头。然而,随着Android设备的发展和硬件的提升,我们需要使用更强大、更灵活的API…

内网 里面安装 vue

1.先在内网电脑上安装node,跟自己电脑一样的版本 2.把自己电脑 node里面 node-cache, node_global&#xff0c;node_modules 三个文件 拷贝到内网电脑 的node 里面 3.内网在配置 node_cache的环境变量环境变量如何配置连接

java八股文面试[java基础]——CGLIB动态代理与JDK动态代理

CGLIB CGLIB简介&#xff1a; 什么是CGLIB CGLIB是一个强大的、高性能的代码生成库。其被广泛应用于AOP框架&#xff08;Spring、dynaop&#xff09;中&#xff0c;用以提供方法拦截操作。Hibernate作为一个比较受欢迎的ORM框架&#xff0c;同样使用CGLIB来代理单端&#xff…

Go 自学:使用错误处理包 errors package

以下代码中使用errors.New()函数建立error。 package mainimport ("errors""fmt" )func divide(x, y float64) (float64, error) {if y 0 {return 0.0, errors.New("no dividing by zero")}return x / y, nil }func test(x, y float64) {defer…

业财融合背景下,全面预算管理的发展之路

随着社会经济的高速发展&#xff0c;单一的组织机构职能极大限制了企业发展的创新动能。业务壁垒的不断滋生造成了信息传达严重的不对等&#xff0c;沟通协作成本加大&#xff0c;业务效率降低&#xff0c;专业化的分工形式逐渐成为了制约企业发展的桎梏。 2016年&…

sql解决取多个截至每个月的数据

问题&#xff1a;需要查询1月、1-2月、1-3月… 1-12月&#xff0c;分区间的累计数据&#xff0c;在同一个sql语句里面实现。 多个分开查询效率不高&#xff0c;并且数据手动合并麻烦。 with t1 as ( SELECT *,CASE WHEN insutype 390 THEN 居民 ELSE 职工 END 人员类别,SUBST…