• 从零开始学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依赖的示例:

        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的示例:

    # 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指定的包下。

    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 接口。例如:

    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 {
    
    }
    

    六、创建Mapper XML文件

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

    "1.0" encoding="UTF-8"?>
    "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    "cn.daimajiangxin.springboot.learning.mapper.UserMapper">
    
        "BaseResultMap" type="cn.daimajiangxin.springboot.learning.model.User">
                "id" column="id" jdbcType="BIGINT"/>
                "name" column="name" jdbcType="VARCHAR"/>
                "email" column="email" jdbcType="VARCHAR"/>
                "age" column="age" jdbcType="INTEGER"/>
                "remark" column="remark" jdbcType="VARCHAR"/>
        
    
        "Base_Column_List">
            id,name,email,age,remark
        
      
        
    
    
    

    七、创建Service 接口

    在service目录下服务类接口UserService

    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 {
    
    }
    

    八、创建Service实现类

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

    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 ServiceImplimplements UserService{
    
    }
    

    九、创建Controller

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

    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 getAllUsers() {
            return userService.list();
        }
        @PostMapping("/user")
        public String add() {
            User user=new User();
            user.setName("test");
            user.setAge(18);
            user.setEmail("test@163.com");
            userService.save(user);
            return "保存成功";
        }
    
    }
    
    

    十、测试

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

    总结

    在本篇文章中,我们详细介绍了如何在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

  • 相关阅读:
    Vuex---对Vuex的理解与使用~~~
    C语言指针详解
    Jenkins pipeline stash实现文件跨节点共享
    html常用标签
    1903021121-刘明伟-java十一周作业-java面向对象编程
    C++基础入门 C++初识
    【HMS Core】运动健康服务历史数据获取、华为推送通道问题、集成分析服务后上架审核失败
    ISO 8601持续时间格式
    C++线程池案例实现讲解及参考
    Linux权限的概念和权限管理
  • 原文地址:https://www.cnblogs.com/daimajiangxin/p/18114207