从零开始学Spring Boot系列-集成MyBatis-Plus

在Spring Boot应用开发中,MyBatis-Plus是一个强大且易于使用的MyBatis增强工具,它提供了很多实用的功能,如代码生成器、条件构造器、分页插件等,极大地简化了MyBatis的使用和配置。本篇文章将指导大家如何在Spring Boot项目中集成MyBatis-Plus。

一、项目准备

首先,确保你已经安装了Java开发环境(JDK)和Maven或Gradle等构建工具。接下来,创建一个新的Spring Boot项目。你可以使用Spring Initializrhttps://start.spring.io来快速生成项目结构,选择你需要的依赖项,比如Spring Web、MySQL Driver等。

二、添加MyBatis-Plus依赖

在Gradle项目中集成MyBatis-Plus,你需要在项目的build.gradle文件中添加MyBatis-Plus的依赖。以下是添加MyBatis-Plus依赖的示例:

java 复制代码
    dependencies {
        implementation 'org.springframework.boot:spring-boot-starter-web'
        compileOnly 'org.projectlombok:lombok'
        annotationProcessor 'org.projectlombok:lombok'
        runtimeOnly 'mysql:mysql-connector-java:8.0.17'
        // MyBatis-Plus 依赖
        implementation 'com.baomidou:mybatis-plus-spring-boot3-starter:3.5.6'
        // 如果需要分页插件,可以添加以下依赖
        implementation 'com.baomidou:mybatis-plus-extension:3.5.6'
    }

三、配置数据源

在application.properties或application.yml文件中,配置你的数据库连接信息。以下是application.yml的示例:

java 复制代码
# datasource
spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false&allowPublicKeyRetrieval=true  
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# mybatis-plus
mybatis-plus.mapper-locations=classpath:mapper/*.xml
mybatis-plus.type-aliases-package=cn.daimajiangxin.springboot.learning.model

这里的your_database、your_username和your_password需要替换为你的数据库名称、用户名和密码。mapper-locations指定了MyBatis映射文件的位置,type-aliases-package指定了实体类所在的包。

四、创建实体类

创建与数据库表对应的实体类,并放在type-aliases-package指定的包下。

java 复制代码
package cn.daimajiangxin.springboot.learning.model;

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 java.io.Serializable;
import lombok.Data;

@TableName(value ="user")
@Data
public class User implements Serializable {
    /**
     * 学生ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

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

    /**
     * 邮箱
     */
    private String email;

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

    /**
     * 备注
     */
    private String remark;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}

五、创建Mapper接口

创建对应的Mapper接口,通常放在与实体类相同的包下,并继承BaseMapper 接口。例如:

java 复制代码
package cn.daimajiangxin.springboot.learning.mapper;

import cn.daimajiangxin.springboot.learning.model.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface UserMapper extends BaseMapper<User> {

}

六、创建Mapper XML文件

在resources的mapper目录下创建对应的XML文件,例如UserMapper.xml:

java 复制代码
<?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="cn.daimajiangxin.springboot.learning.mapper.UserMapper">

    <resultMap id="BaseResultMap" type="cn.daimajiangxin.springboot.learning.model.User">
            <id property="id" column="id" jdbcType="BIGINT"/>
            <result property="name" column="name" jdbcType="VARCHAR"/>
            <result property="email" column="email" jdbcType="VARCHAR"/>
            <result property="age" column="age" jdbcType="INTEGER"/>
            <result property="remark" column="remark" jdbcType="VARCHAR"/>
    </resultMap>

    <sql id="Base_Column_List">
        id,name,email,age,remark
    </sql>
  
    <select id="findAllUsers"  resultMap="BaseResultMap">
     select
       <include refid="Base_Column_List"></include>
     from user
    </select>
</mapper>

七、创建Service 接口

在service目录下服务类接口UserService

java 复制代码
package cn.daimajiangxin.springboot.learning.service;

import cn.daimajiangxin.springboot.learning.model.User;
import com.baomidou.mybatisplus.extension.service.IService;

public interface UserService extends IService<User> {

}

八、创建Service实现类

在service目录下创建一个impl目录,并创建UserService实现类UserServiceImpl

java 复制代码
package cn.daimajiangxin.springboot.learning.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cn.daimajiangxin.springboot.learning.model.User;
import cn.daimajiangxin.springboot.learning.service.UserService;
import cn.daimajiangxin.springboot.learning.mapper.UserMapper;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User>implements UserService{

}

九、创建Controller

控制层注入 UserService,并使用IService的list和save 方法。

java 复制代码
package cn.daimajiangxin.springboot.learning.controller;

import cn.daimajiangxin.springboot.learning.model.User;
import cn.daimajiangxin.springboot.learning.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class UserController {
    private final UserService userService;

    @Autowired
    public UserController(UserService userService) {
        this.userService = userService;
    }
    @GetMapping("/users")
    public List<User> getAllUsers() {
        return userService.list();
    }
    @PostMapping("/user")
    public String add() {
        User user=new User();
        user.setName("test");
        user.setAge(18);
        user.setEmail("[email protected]");
        userService.save(user);
        return "保存成功";
    }

}

十、测试

运行你的Spring Boot应用程序,并通过调用UserService的list方法来测试MyBatis-plus的集成效果。你可以通过编写单元测试或使用Postman或apipost等工具来发送HTTP请求,访问来http://localhost:8080/users查看所有用户的列表。

总结

在本篇文章中,我们详细介绍了如何在Spring Boot项目中集成MyBatis-Plus,并使用XML文件定义Mapper接口的实现。首先,我们添加了MyBatis-Plus的依赖,并配置了数据源。接着,我们创建了实体类,并使用了MyBatis-Plus的注解来指定实体类与数据库表的映射关系。然后,我们创建了Mapper接口,并继承了BaseMapper以使用MyBatis-Plus提供的CRUD方法。为了更灵活地控制SQL语句的编写,我们还编写了Mapper的XML文件,并在其中定义了自定义的SQL语句。最后,在Service层或Controller层中,我们通过注入Mapper接口来使用这些功能。

通过集成MyBatis-Plus并使用XML实现Mapper,我们可以在Spring Boot项目中高效地进行数据库操作,同时保持代码的清晰和可维护性。MyBatis-Plus的增强功能和XML的灵活性相结合,使得数据访问层的开发变得更加简单和高效。


我是代码匠心,和我一起学习更多精彩知识!!!扫描二维码!关注我,实时获取推送。

源文来自:https://daimajiangxin.cn

相关推荐
bobz9655 分钟前
ovs patch port 对比 veth pair
后端
Asthenia041215 分钟前
Java受检异常与非受检异常分析
后端
uhakadotcom29 分钟前
快速开始使用 n8n
后端·面试·github
JavaGuide36 分钟前
公司来的新人用字符串存储日期,被组长怒怼了...
后端·mysql
bobz9651 小时前
qemu 网络使用基础
后端
Asthenia04121 小时前
面试攻略:如何应对 Spring 启动流程的层层追问
后端
Asthenia04121 小时前
Spring 启动流程:比喻表达
后端
Asthenia04122 小时前
Spring 启动流程分析-含时序图
后端
ONE_Gua2 小时前
chromium魔改——CDP(Chrome DevTools Protocol)检测01
前端·后端·爬虫
致心2 小时前
记一次debian安装mariadb(带有迁移数据)
后端