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

完美

相关推荐
寻星探路5 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
曹牧7 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
爬山算法8 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
kfyty7258 小时前
集成 spring-ai 2.x 实践中遇到的一些问题及解决方案
java·人工智能·spring-ai
猫头虎8 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
李少兄8 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea
忆~遂愿9 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
小韩学长yyds9 小时前
Java序列化避坑指南:明确这4种场景,再也不盲目实现Serializable
java·序列化
仟濹9 小时前
【Java基础】多态 | 打卡day2
java·开发语言
Re.不晚9 小时前
JAVA进阶之路——无奖问答挑战2
java·开发语言