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

一文吃透SpringBoot整合mybatis-plus(保姆式教程)

在这里插入图片描述

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:SpringBoot 框架从入门到精通
✨特色专栏:国学周更-心性养成之路
🥭本文内容:一文吃透SpringBoot整合mybatis-plus(保姆式教程)

文章目录

    • 手动整合 mybatis-plus 详解
      • 1、引入依赖
      • 2、创建基本目录结构
      • 3、配置 application.yml
      • 4、在 entity 包下创建实体类
      • 5、创建 Mapper 接口
      • 6、创建 Mapper.xml 文件
      • 7、创建 Service 接口
      • 8、创建 ServiceImpl 实现类
      • 9、创建 Controller 控制类
      • 10、测试
    • 自动整合 mybatis-plus 详解
      • 1、引入依赖
      • 2、配置 application.yml
      • 3、自动整合配置
        • 【1】IDEA 连接 数据库
        • 【2】添加数据库到IDEA中
        • 【3】选择数据表进行自动创建
      • 4、手动创建 Controller 层和测试

在这里插入图片描述
首先创建一个 SpringBoot 项目,具体创建步骤可以参见我的上一篇博文:SpringBoot 项目的创建与启动。

手动整合 mybatis-plus 详解

1、引入依赖

在 pom.xml 文件中添加相关依赖,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.12</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>cn.kgc</groupId>
    <artifactId>springboot04</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot04</name>
    <description>springboot04</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--引入mybatis-plus依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
        <!--引入mysql依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--引入druid连接池依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.9</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

2、创建基本目录结构

在新创建的springboot项目中的cn.kgc.springboot04包下创建如下图所示的目录结构,再在resources目录下创建mapper目录。

在这里插入图片描述

3、配置 application.yml

将下图中 application.properties 文件改为 application.yml 风格的文件

在这里插入图片描述
在这里插入图片描述

在application.yml文件中添加相关配置,配置代码如下:

server:
  port: 8888
spring:
  #配置数据源
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql:///java2218?serverTimezone=UTC&useSSL=false&characterEncoding=UTF-8
    username: root
    password: huanghuang
#配置mybatis-plus
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true
  type-aliases-package: cn.kgc.springboot04.entity
  mapper-locations: classpath:mapper/*.xml

4、在 entity 包下创建实体类

创建一个实体类 Admin,代码如下:

package cn.kgc.springboot04.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;

@Data
@TableName("admin")
@Accessors(chain = true)
public class Admin {
  @TableId(type = IdType.AUTO)
  private long adminId;
  @TableField("adminName")
  private String adminName;
  private long adminPassword;
  @TableField(exist = false)
  private String  sex;
}

@TableName(“admin”)指定实体类对应数据库中表的名字,Admin类默认对应的表名为admin,当类名不为Admin时,添加此注解可解决此问题。

@Accessors(chain = true)通过链式调用完成对象创建;如:Admin admin = new Admin().setAdminName(“小明”).setAdminPassword(123456);

@TableId(type = IdType.AUTO)指定主键自增策略,如果数据库为给主键添加自增属性,通过此注解可以添加自增功能。

@TableField(“adminName”):当实体类的属性名与数据库的字段名不一致时,使用此注解可以指定属性名对应数据库中的哪个字段对应

@TableField(exist = false)指定当前属性在数据库中不存在对应的字段 忽略该字段的操作

5、创建 Mapper 接口

创建 AdminMapper 接口,使其继承 BaseMapper实现ORM操作,代码如下:

package cn.kgc.springboot04.mapper;

import cn.kgc.springboot04.entity.Admin;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

public interface AdminMapper extends BaseMapper<Admin> {
}

其中,BaseMapper提供了常用的CRUD、分页、批量操作等方法。

6、创建 Mapper.xml 文件

创建 AdminMapper.xml 文件,使其的 namespace 为 AdminMapper 接口的路径地址,代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.kgc.springboot04.mapper.AdminMapper">

</mapper>

7、创建 Service 接口

创建 AdminService 接口,使其继承 IService,代码如下:

package cn.kgc.springboot04.service;

import cn.kgc.springboot04.entity.Admin;
import com.baomidou.mybatisplus.extension.service.IService;

public interface AdminService extends IService<Admin> {
}

8、创建 ServiceImpl 实现类

创建 AdminServiceImpl 实现类,使其继承 ServiceImpl以及继承 AdminService 接口,代码如下:

package cn.kgc.springboot04.service.impl;

import cn.kgc.springboot04.entity.Admin;
import cn.kgc.springboot04.mapper.AdminMapper;
import cn.kgc.springboot04.service.AdminService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

@Service
public class AdminServiceImpl extends ServiceImpl<AdminMapper, Admin> implements AdminService {
}

9、创建 Controller 控制类

创建 AdminController 控制类,代码如下:

package cn.kgc.springboot04.controller;

import cn.kgc.springboot04.entity.Admin;
import cn.kgc.springboot04.service.AdminService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("admin")
public class AdminController {

    @Autowired
    AdminService adminService;

    //查询所有管理员
    @RequestMapping("list")
    public List<Admin> getList(){
        return adminService.list();
    }

    //增加或者修改一条数据
    @RequestMapping("savaOrUpdate")
    public String insertOne(Admin admin){
        boolean save = adminService.saveOrUpdate(admin);
        return ""+save;
    }

    //删除一条数据
    @RequestMapping("delete")
    public String deleteOne(Integer id){
        boolean b = adminService.removeById(id);
        return ""+b;
    }
}

10、测试

下面,我们就一一测试不同接口的运行效果吧!

【1】查询所有数据:在浏览器输入(http://localhost:8888/admin/list

测试结果如下:

在这里插入图片描述
【2】插入一条数据:在浏览器输入(http://localhost:8888/admin/savaOrUpdate?adminname=赵敏&adminpassword=123456

测试结果如下:

在这里插入图片描述
添加数据后,数据库数据显示如下:

在这里插入图片描述

【3】修改一条数据:在浏览器输入(http://localhost:8888/admin/savaOrUpdate?adminname=赵敏&adminpassword=888888&adminid=1006

测试结果如下:

在这里插入图片描述
修改数据后,数据库数据显示如下:

在这里插入图片描述

【4】删除一条数据:在浏览器输入(http://localhost:8888/admin/delete?id=1006

测试结果如下:

在这里插入图片描述
如下图,删除数据后,数据库的这条记录便不存在了。

在这里插入图片描述

自动整合 mybatis-plus 详解

1、引入依赖

在 pom.xml 文件中添加相关依赖,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.12</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>cn.kgc</groupId>
    <artifactId>springboot05</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot05</name>
    <description>springboot05</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--引入mybatis-plus依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
        <!--引入mysql依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--引入druid连接池依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.9</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

2、配置 application.yml

将下图中 application.properties 文件改为 application.yml 风格的文件

在这里插入图片描述
在这里插入图片描述

在application.yml文件中添加相关配置,配置代码如下:

server:
  port: 9999
spring:
  #配置数据源
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql:///java2218?serverTimezone=UTC&useSSL=false&characterEncoding=UTF-8
    username: root
    password: huanghuang
#配置mybatis-plus
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true
  type-aliases-package: cn.kgc.springboot04.entity
  mapper-locations: classpath:mapper/*.xml

3、自动整合配置

【1】IDEA 连接 数据库

如下图,打开IDEA 右侧工具栏的 Database ,点击+按钮,选择 Data Source后,选择你使用的数据库类型,我这边使用的是MySQL,所以我选择MySQL,然后进入下一步;

在这里插入图片描述

【2】添加数据库到IDEA中

按照下图所示,填入数据库用户名和密码,然后填写需要添加的数据库名称,点击 Apply 和 OK 后,进入下一步。

在这里插入图片描述

如果java2218数据库中没有数据,可以点击此处的刷新按钮即可。

在这里插入图片描述

【3】选择数据表进行自动创建

第一步:如下图,选择你需要自动创建的表,可以选择多个表,然后右击选择 MybatisX-Generator,进入下一步;

在这里插入图片描述

第二步:如下图配置 module path、base package 和 relative package,然后进入下一步;

在这里插入图片描述

第三步:如下图配置,选择你安装的 MyBatis-Plus 版本,我安装的是 MyBatis-Plus 3版本,因此选择此项,然后选择 Lombok ,点击 Finish 完成创建

在这里插入图片描述

点击完成后,自动生成的文件目录如下图所示:

在这里插入图片描述

由图可知,通过次步操作,我们已经自动创建了entity层、 mapper 层和 service 层,大大提高了我们编写的效率。

4、手动创建 Controller 层和测试

Controller 层的业务和测试如 【手动整合 mybatis-plus 详解】中的第9、10步一样。


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述


http://www.kler.cn/a/3417.html

相关文章:

  • 优选算法——哈希表
  • C#集合操作优化:高效实现批量添加与删除
  • ASP .NET Core 学习(.NET9)部署(一)windows
  • AI新玩法:Flux.1图像生成结合内网穿透远程生图的解决方案
  • AI模型提示词(prompt)优化-实战(一)
  • 使用Sum计算Loss和解决梯度累积(Gradient Accumulation)的Bug
  • 自己设计的网站,如何实现分页功能?(详细代码+注释)
  • 优秀程序员的5个特征,你在第几层?
  • 走进Vue【四】导航守卫和路由原信息详解
  • 进阶C语言——字符函数和字符串函数【详解】(二)
  • 开关电源Y电容放置的位置
  • 不要迷信 QUIC
  • 计算机组成原理实验一(完整)
  • git基本用法教程(fork软件+git命令)
  • 【华为OD机试 2023最新 】 最多颜色的车辆(C++)
  • linux实验之shell编程基础
  • 这几个SQL语法的坑,你踩过吗
  • 初识python导论
  • C++分析以下关于指针的操作有什么问题
  • java面试准备8
  • Android 之 打开相机 打开相册
  • Python深度学习实战:人脸关键点(15点)检测pytorch实现
  • STM32数据搬运工DMA
  • 【贪心算法】一文让你学会“贪心”(贪心算法详解及经典案例)
  • 2023-第十四届蓝桥杯冲刺计划!
  • 蓝桥杯冲刺 - week2