Spring boot 整合mybatis-plus

Spring Boot 整合 MyBatis-Plus 是一个非常常见的需求,因为 MyBatis-Plus 在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。下面是一个简单的步骤指南来帮助你在 Spring Boot 应用中整合 MyBatis-Plus。

1. 添加依赖

首先,在 pom.xml 文件中添加 MyBatis-Plus 和 Spring Boot 的依赖。

XML 复制代码
  <dependencies>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>


    <dependency>
      <groupId>com.mysql</groupId>
      <artifactId>mysql-connector-j</artifactId>
      <version>8.2.0</version>
    </dependency>

    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
      <version>3.5.9</version>
    </dependency>


    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <optional>true</optional>
    </dependency>

  </dependencies>

2. 配置数据库连接

application.yml 中配置数据库连接信息。

java 复制代码
spring:
  application:
    name: ncc
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ncc?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
    username: root
    password: root

3. 创建实体类

根据数据库表结构创建对应的实体类。MyBatis-Plus 支持自动映射字段,所以通常情况下只需要关注实体类的定义。

java 复制代码
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;

@TableName("users")
@Data
@Accessors(chain = true)
public class User {

	@TableId
	private Long id;
	private String username;
	private String password;

}

4. 创建 Mapper 接口

创建一个继承自 BaseMapper 的接口,该接口提供了丰富的 CRUD 操作。

java 复制代码
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.demo.ncc.model.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper extends BaseMapper<User> {

}

5. 创建service,使用 Mapper

在你的 Service 类中注解注入 Mapper,并使用它来进行数据操作。

java 复制代码
import com.demo.ncc.mapper.UserMapper;
import com.demo.ncc.model.User;
import java.util.List;
import java.util.UUID;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

@Service
@RequiredArgsConstructor
public class UserService {

	private final UserMapper userMapper;

	public List<User> getUserList() {
		return userMapper.selectList(null);
	}

	public void insert() {
		User user = new User();
		user.setUsername(UUID.randomUUID().toString()).setPassword("123");
		userMapper.insert(user);
	}

}

6,创建controller,提供接口访问

java 复制代码
import com.demo.ncc.model.User;
import com.demo.ncc.service.UserService;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

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

	private final UserService userService;

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

	@GetMapping("/add")
	public String add() {
		userService.insert();
		return "success";
	}

}

7,启动类添加@MapperScan扫描,包路径为UserMapper路径

java 复制代码
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.demo.ncc.mapper")
public class NccApplication {
	public static void main(String[] args) {
		SpringApplication.run(NccApplication.class, args);
	}
}

8,运行代码

先访问add,在数据库添加数据

http://localhost:8080/user/add

再访问list

http://localhost:8080/user/list

完美

相关推荐
Miraitowa_cheems15 分钟前
LeetCode算法日记 - Day 64: 岛屿的最大面积、被围绕的区域
java·算法·leetcode·决策树·职场和发展·深度优先·推荐算法
Lisonseekpan36 分钟前
Spring Boot 中使用 Caffeine 缓存详解与案例
java·spring boot·后端·spring·缓存
为java加瓦38 分钟前
Rust 的类型自动解引用:隐藏在人体工学设计中的魔法
java·服务器·rust
SimonKing41 分钟前
分布式日志排查太头疼?TLog 让你一眼看穿请求链路!
java·后端·程序员
消失的旧时光-19431 小时前
Kotlin 判空写法对比与最佳实践
android·java·kotlin
小许学java1 小时前
Spring AI快速入门以及项目的创建
java·开发语言·人工智能·后端·spring·ai编程·spring ai
一叶飘零_sweeeet1 小时前
从 “死锁“ 到 “解耦“:重构中间服务破解 Java 循环依赖难题
java·循环依赖
Terio_my1 小时前
Spring Boot Web环境测试配置
spring boot
whltaoin2 小时前
Java 后端与 AI 融合:技术路径、实战案例与未来趋势
java·开发语言·人工智能·编程思想·ai生态