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

海哥  金牌会员 | 2024-5-16 09:17:04 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 893|帖子 893|积分 2679

在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依赖的示例:
  1.     dependencies {
  2.         implementation 'org.springframework.boot:spring-boot-starter-web'
  3.         compileOnly 'org.projectlombok:lombok'
  4.         annotationProcessor 'org.projectlombok:lombok'
  5.         runtimeOnly 'mysql:mysql-connector-java:8.0.17'
  6.         // MyBatis-Plus 依赖
  7.         implementation 'com.baomidou:mybatis-plus-spring-boot3-starter:3.5.6'
  8.         // 如果需要分页插件,可以添加以下依赖
  9.         implementation 'com.baomidou:mybatis-plus-extension:3.5.6'
  10.     }
复制代码
三、设置数据源

在application.properties或application.yml文件中,设置你的数据库连接信息。以下是application.yml的示例:
  1. # datasource
  2. spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false&allowPublicKeyRetrieval=true  
  3. spring.datasource.username=your_username
  4. spring.datasource.password=your_password
  5. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
  6. # mybatis-plus
  7. mybatis-plus.mapper-locations=classpath:mapper/*.xml
  8. 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指定的包下。
  1. package cn.daimajiangxin.springboot.learning.model;
  2. import com.baomidou.mybatisplus.annotation.IdType;
  3. import com.baomidou.mybatisplus.annotation.TableField;
  4. import com.baomidou.mybatisplus.annotation.TableId;
  5. import com.baomidou.mybatisplus.annotation.TableName;
  6. import java.io.Serializable;
  7. import lombok.Data;
  8. @TableName(value ="user")
  9. @Data
  10. public class User implements Serializable {
  11.     /**
  12.      * 学生ID
  13.      */
  14.     @TableId(type = IdType.AUTO)
  15.     private Long id;
  16.     /**
  17.      * 姓名
  18.      */
  19.     private String name;
  20.     /**
  21.      * 邮箱
  22.      */
  23.     private String email;
  24.     /**
  25.      * 年龄
  26.      */
  27.     private Integer age;
  28.     /**
  29.      * 备注
  30.      */
  31.     private String remark;
  32.     @TableField(exist = false)
  33.     private static final long serialVersionUID = 1L;
  34. }
复制代码
五、创建Mapper接口

创建对应的Mapper接口,通常放在与实体类相同的包下,并继承BaseMapper 接口。比方:
  1. package cn.daimajiangxin.springboot.learning.mapper;
  2. import cn.daimajiangxin.springboot.learning.model.User;
  3. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  4. public interface UserMapper extends BaseMapper<User> {
  5. }
复制代码
六、创建Mapper XML文件

在resources的mapper目次下创建对应的XML文件,比方UserMapper.xml:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3.         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4.         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="cn.daimajiangxin.springboot.learning.mapper.UserMapper">
  6.     <resultMap id="BaseResultMap" type="cn.daimajiangxin.springboot.learning.model.User">
  7.             <id property="id" column="id" jdbcType="BIGINT"/>
  8.             <result property="name" column="name" jdbcType="VARCHAR"/>
  9.             <result property="email" column="email" jdbcType="VARCHAR"/>
  10.             <result property="age" column="age" jdbcType="INTEGER"/>
  11.             <result property="remark" column="remark" jdbcType="VARCHAR"/>
  12.     </resultMap>
  13.     <sql id="Base_Column_List">
  14.         id,name,email,age,remark
  15.     </sql>
  16.   
  17.     <select id="findAllUsers"  resultMap="BaseResultMap">
  18.      select
  19.        <include refid="Base_Column_List"></include>
  20.      from user
  21.     </select>
  22. </mapper>
复制代码
七、创建Service 接口

在service目次下服务类接口UserService
  1. package cn.daimajiangxin.springboot.learning.service;
  2. import cn.daimajiangxin.springboot.learning.model.User;
  3. import com.baomidou.mybatisplus.extension.service.IService;
  4. public interface UserService extends IService<User> {
  5. }
复制代码
八、创建Service实现类

在service目次下创建一个impl目次,并创建UserService实现类UserServiceImpl
  1. package cn.daimajiangxin.springboot.learning.service.impl;
  2. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  3. import cn.daimajiangxin.springboot.learning.model.User;
  4. import cn.daimajiangxin.springboot.learning.service.UserService;
  5. import cn.daimajiangxin.springboot.learning.mapper.UserMapper;
  6. import org.springframework.stereotype.Service;
  7. @Service
  8. public class UserServiceImpl extends ServiceImpl<UserMapper, User>implements UserService{
  9. }
复制代码
九、创建Controller

控制层注入 UserService,并使用IService的list和save 方法。
  1. package cn.daimajiangxin.springboot.learning.controller;
  2. import cn.daimajiangxin.springboot.learning.model.User;
  3. import cn.daimajiangxin.springboot.learning.service.UserService;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.web.bind.annotation.GetMapping;
  6. import org.springframework.web.bind.annotation.PostMapping;
  7. import org.springframework.web.bind.annotation.RestController;
  8. import java.util.List;
  9. @RestController
  10. public class UserController {
  11.     private final UserService userService;
  12.     @Autowired
  13.     public UserController(UserService userService) {
  14.         this.userService = userService;
  15.     }
  16.     @GetMapping("/users")
  17.     public List<User> getAllUsers() {
  18.         return userService.list();
  19.     }
  20.     @PostMapping("/user")
  21.     public String add() {
  22.         User user=new User();
  23.         user.setName("test");
  24.         user.setAge(18);
  25.         user.setEmail("test@163.com");
  26.         userService.save(user);
  27.         return "保存成功";
  28.     }
  29. }
复制代码
十、测试

运行你的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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

海哥

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表