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

完美

相关推荐
stein_java32 分钟前
springMVC-10验证及国际化
java·spring
weixin_4786897635 分钟前
C++ 对 C 的兼容性
java·c语言·c++
LUCIAZZZ1 小时前
HikariCP数据库连接池原理解析
java·jvm·数据库·spring·springboot·线程池·连接池
考虑考虑1 小时前
Springboot3.5.x结构化日志新属性
spring boot·后端·spring
sky_ph1 小时前
JAVA-GC浅析(二)G1(Garbage First)回收器
java·后端
TTDreamTT2 小时前
SpringBoot十二、SpringBoot系列web篇之过滤器Filte详解
spring boot
IDRSolutions_CN2 小时前
PDF 转 HTML5 —— HTML5 填充图形不支持 Even-Odd 奇偶规则?(第二部分)
java·经验分享·pdf·软件工程·团队开发
hello早上好2 小时前
Spring不同类型的ApplicationContext的创建方式
java·后端·架构
HelloWord~3 小时前
SpringSecurity+vue通用权限系统2
java·vue.js
让我上个超影吧3 小时前
黑马点评【基于redis实现共享session登录】
java·redis