Spring Boot 和 MyBatis-Plus凑一块儿了,这份教程你得看

一、引言

MyBatis-Plus 是 MyBatis 的增强版,提供了 CRUD 接口、分页插件、性能分析插件等特性,简化了开发过程。本文将详细介绍如何在 Spring Boot 项目中集成 MyBatis-Plus。

支持的数据看也越来越多,值得去搞一下,写了一个小例子

二、环境准备
  1. JDK 8 或以上版本
  2. Maven 3.8或以上版本
  3. IntelliJ IDEA 或其他开发工具
  4. MySQL 数据库
三、创建 Spring Boot 项目

使用 Spring Initializr 创建一个基本的 Spring Boot 项目,并选择如下依赖:

  • Spring Web
  • MyBatis-Plus
  • MySQL Driver
  • Lombok(idea中也得安装lombok对应插件)
示例:

可以通过访问 Spring Initializr 在线生成项目或者阿里的也行(https://start.aliyun.com/bootstrap.html),个人比较喜欢用页面的方式,也可以在 IDEA 中直接创建。

四、添加依赖

<font style="color:rgb(38, 38, 38);">pom.xml 文件中添加 MyBatis-Plus 的相关依赖:

<dependencies>
  <!-- Spring Boot Starter -->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
  </dependency>

  <!-- Spring Boot Starter Web -->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency>

  <!-- MyBatis-Plus Starter -->
  <dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5</version>
  </dependency>

  <!-- MySQL Connector -->
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
  </dependency>

  <!-- Spring Boot Starter Test -->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
  </dependency>
</dependencies>
五、配置数据库连接初始化数据

建表语句:

-- test.`user` definition 创建一个test库

CREATE TABLE `user` (
  `id` bigint DEFAULT NULL COMMENT 'id',
  `name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '名称',
  `age` int DEFAULT NULL COMMENT '年龄',
  `email` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '邮件'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';


INSERT INTO test.`user` (id,name,age,email) VALUES
	 (1,'yuanmomo',18,'u8475845@qq.com'),
	 (2,'eefsfsdf',23,'dfjsdshj@qq.com');

<font style="color:rgb(38, 38, 38);">src/main/resources 目录下创建 <font style="color:rgb(38, 38, 38);">application.yml 文件,配置数据库连接信息:

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/your_database_name?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    username: your_username
    password: your_password
 
mybatis-plus:
  mapper-locations: classpath:/mapper/*.xml
  type-aliases-package: com.yuanmomo.demo.entity
六、创建实体类

<font style="color:rgb(38, 38, 38);">src/main/java/com/yuanmomo/demo/entity 目录下创建实体类,例如 <font style="color:rgb(38, 38, 38);">User.java

package com.yuanmomo.demo.entity;


import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
@TableName("user")
public class User {
    /**
     * id
     */
    @TableId
    private Long id;

    /**
     * 姓名
     */
    private String name;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 邮件
     */
    private String email;
}
七、创建 Mapper 接口

<font style="color:rgb(38, 38, 38);">src/main/java/com/yuanmomo/demo/mapper 目录下创建 Mapper 接口,例如 <font style="color:rgb(38, 38, 38);">UserMapper.java

package com.yuanmomo.demo.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuanmomo.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper extends BaseMapper<User> {
}
八、创建 Service 层

<font style="color:rgb(38, 38, 38);">src/main/java/com/yuanmomo/demo/service 目录下创建服务接口和实现类:

服务接口 UserService.java
package com.yuanmomo.demo.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanmomo.demo.entity.User;

public interface UserService extends IService<User> {
}

服务实现类 <font style="color:rgb(38, 38, 38);">UserServiceImpl.java

package com.yuanmomo.demo.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanmomo.demo.entity.User;
import com.yuanmomo.demo.mapper.UserMapper;
import com.yuanmomo.demo.service.UserService;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}
九、创建 Controller 层

<font style="color:rgb(38, 38, 38);">src/main/java/com/yuanmomo/demo/controller 目录下创建控制器类 <font style="color:rgb(38, 38, 38);">UserController.java

package com.yuanmomo.demo.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yuanmomo.demo.entity.User;
import com.yuanmomo.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/list")
    public List<User> list() {
        return userService.list();
    }

    @PostMapping("/add")
    public boolean add(@RequestBody User user) {
        return userService.save(user);
    }

    @PutMapping("/update")
    public boolean update(@RequestBody User user) {
        return userService.updateById(user);
    }

    @DeleteMapping("/delete/{id}")
    public boolean delete(@PathVariable Long id) {
        return userService.removeById(id);
    }
}
十、编写 Mapper XML 文件

<font style="color:rgb(38, 38, 38);">src/main/resources/mapper 目录下创建 <font style="color:rgb(38, 38, 38);">UserMapper.xml 文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanmomo.demo.mapper.UserMapper">
  <resultMap id="BaseResultMap" type="com.yuanmomo.demo.entity.User">
    <id column="id" property="id"/>
    <result column="name" property="name"/>
    <result column="age" property="age"/>
    <result column="email" property="email"/>
  </resultMap>

  <sql id="Base_Column_List">
    id, name, age, email
  </sql>

  <select id="selectAll" resultMap="BaseResultMap">
    SELECT <include refid="Base_Column_List"/>
    FROM user
  </select>
</mapper>
十一、运行项目

确保数据库配置正确后,启动 Spring Boot 应用。访问 <font style="color:rgb(38, 38, 38);">http://localhost:8080/user/list 应该能看到用户列表。

十二、总结

通过以上步骤,我们完成了 Spring Boot 项目与 MyBatis-Plus 的集成。MyBatis-Plus 简化了大量繁琐的 CRUD 操作,提高了开发效率。通过结合 Spring Boot 的强大功能,我们可以更快速地构建高效、稳定的企业级应用。

附:完整项目结构
src
├── main
│   ├── java
│   │   └── com
│   │       └── yuanmomo
│   │           └── demo
│   │               ├── controller
│   │               │   └── UserController.java
│   │               ├── entity
│   │               │   └── User.java
│   │               ├── mapper
│   │               │   └── UserMapper.java
│   │               ├── service
│   │               │   ├── UserService.java
│   │               │   └── impl
│   │               │       └── UserServiceImpl.java
│   │               └── DemoApplication.java
│   ├── resources
│   │   ├── application.yml
│   │   └── mapper
│   │       └── UserMapper.xml
│   └── test
│       └── java
│           └── com
│               └── yuanmomo
│                   └── demo
│                       └── DemoApplicationTests.java
└── pom.xml
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

救救孩子把

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值