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

完美

相关推荐
HoneyMoose6 小时前
Jenkins Cloudflare 部署提示错误
java·servlet·jenkins
阿丰资源6 小时前
基于SpringBoot的物流信息管理系统设计与实现(附资料)
java·spring boot·后端
Predestination王瀞潞6 小时前
Java EE3-我独自整合(第四章:Spring bean标签的常见配置)
java·spring·java-ee
overmind6 小时前
oeasy Python 121[专业选修]列表_多维列表运算_列表相加_列表相乘
java·windows·python
资深数据库专家6 小时前
总账EBS 应用服务器1 的监控分析
java·网络·数据库
房开民6 小时前
可变参数模板
java·开发语言·算法
t***5446 小时前
如何在现代C++中更有效地应用这些模式
java·开发语言·c++
_深海凉_6 小时前
LeetCode热题100-最小栈
java·数据结构·leetcode
不知名的忻6 小时前
Morris遍历(力扣第99题)
java·算法·leetcode·morris遍历
daidaidaiyu7 小时前
一文学习入门 ThingsBoard 开源物联网平台
java·mqtt·spring