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

Spring Boot整合MyBatis Plus详解

MyBatis Plus是MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。

前言

在Java企业级开发中,Spring Boot以其自动配置、简化开发流程的特性,成为微服务架构下首选的框架之一。而MyBatis Plus则以其强大的CRUD操作、代码生成器等功能,进一步简化了数据库操作。本文将详细介绍如何在Spring Boot项目中整合MyBatis Plus,实现快速的数据访问。

环境准备
  • JDK 1.8+
  • Maven 3.x+
  • IntelliJ IDEA 或其他IDE
  • MySQL数据库
  • Spring Boot 2.x+
  • MyBatis Plus 3.x+
1. 创建Spring Boot项目

首先,通过Spring Initializr(https://start.spring.io/)快速生成一个Spring Boot项目。选择需要的依赖:

  • Spring Web
  • MySQL Driver
  • MyBatis Framework(注意:虽然这里选择的是MyBatis Framework,但我们将在后续步骤中通过Maven手动添加MyBatis Plus的依赖)
2. 添加MyBatis Plus依赖

pom.xml文件中,添加MyBatis Plus的依赖。以下是一个示例配置:

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

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

    <!-- MyBatis Plus -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.4.3.4</version> <!-- 请使用最新版本 -->
    </dependency>

    <!-- 其他依赖... -->
</dependencies>
3. 配置数据源

application.propertiesapplication.yml中配置数据源信息:

# application.properties 示例
spring.datasource.url=jdbc:mysql://localhost:3306/yourdatabase?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=yourpassword
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# MyBatis Plus 配置
mybatis-plus.mapper-locations=classpath:/mapper/**/*.xml
mybatis-plus.type-aliases-package=com.example.demo.entity
mybatis-plus.global-config.db-config.id-type=auto
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
4. 创建实体类

例如,我们有一个用户表user,对应的实体类User如下:

package com.example.demo.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

@TableName("user")
public class User {
    @TableId(type = IdType.AUTO)
    private Long id;
    private String name;
    private Integer age;
    // getters and setters
}
5. 创建Mapper接口
package com.example.demo.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;

public interface UserMapper extends BaseMapper<User> {
    // 这里可以定义额外的Mapper方法,但大部分CRUD操作已由BaseMapper提供
}
6. 创建Service层

如果需要,可以创建Service层来封装业务逻辑。

package com.example.demo.service;

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

@Service
public class UserService extends ServiceImpl<UserMapper, User> {
    // 这里可以添加自定义业务方法
}
7. 创建Controller层
package com.example.demo.controller;

import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

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

    @Autowired
    private UserService userService;

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

    // 其他接口...
}
8. 运行和测试

启动Spring Boot应用,并访问http://localhost:8080/users/list,你应该能看到数据库中用户表的数据被成功列出。


以上就是Spring Boot整合MyBatis Plus的完整步骤和代码示例。通过MyBatis Plus,我们可以更方便地实现数据库操作,同时保持代码的简洁和可维护性。


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

相关文章:

  • idea的mapper.xml文件里写sql语句出现Tag name expected错误提示
  • HTML之列表
  • Visual Studio Code 端口转发功能详解
  • 动手学深度学习68 Transformer
  • 大模型开发整体流程 基于个人知识库的问答助手 项目流程架构解析
  • 自動換IP為什麼會不穩定?
  • 二级C语言2023-9易错题
  • 反游戏学(Reludology):概念、历史、现状与展望?(豆包AI版)
  • mac 怎么查看CPU核数
  • 通过UV快速计算品牌独立站网络流量
  • 【算法】BFS 系列之 多源 BFS
  • Unity之FPS
  • 谷粒商城のElasticsearch
  • 优先级队列(堆)
  • 行业分析---自动驾驶行业的发展
  • MySQL定长窗口SQL
  • Spring为什么要用三级缓存解决循环依赖?
  • 微服务之服务注册与发现:Etcd、Zookeeper、Consul 与 Nacos 比较
  • libmodbus:写一个modbusTCP服务
  • 求Huffman树及其matlab程序详解
  • RabbitMQ 常见使用模式详解
  • Delta Lake
  • jetcache-阿里多级缓存框架神器一定要掌握
  • 【Kubernetes知识点】HPA如何控制不同的资源实现自动扩缩容?
  • 青柠视频云——如何开启HTTPS服务?
  • 最新植物大战僵尸杂交版V2.5版本【包含历史版本!持续更新!!】