Springcloud 兼容Mybitas
上次更新: 2024-12-31 16:20:00
UP:[[技术积累概况]]
1. 背景
2. 内容
在 Spring Cloud 项目中兼容 MyBatis,您可以采用 MyBatis-Plus,它是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis-Plus 提供了许多开箱即用的功能,如自动 CRUD、通用 Mapper、公共字段自动填充等。
下面是将 MyBatis-Plus 集成到 Spring Cloud 项目的步骤:
- 添加依赖
在 pom.xml 文件中添加 MyBatis-Plus 的依赖。确保您使用的是与 Spring Cloud 版本兼容的 MyBatis-Plus 版本。
<dependencies>
<!-- MyBatis Plus 核心依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3</version> <!-- 确保使用与Spring Boot版本兼容的版本 -->
</dependency>
<!-- MySQL 连接器 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<!-- Spring Boot Starter Data JPA 可选,用于兼容Spring Data JPA的特性 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- Spring Boot Starter Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring Cloud 相关依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
- 配置数据库
在 application.yml 或 application.properties 文件中配置数据库连接信息。
spring:
datasource:
url: jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
username: root
password: password
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
mapper-locations: classpath:mapper/*.xml
global-config:
db-config:
logic-delete-value: 1 # 逻辑已删除值(默认为1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为0)
configuration:
map-underscore-to-camel-case: true
- 创建实体类
创建一个简单的实体类,例如 User。
package com.example.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("user")
public class User {
@TableId
private Long id;
private String name;
private Integer age;
}
- 创建 Mapper 接口
创建一个继承自 BaseMapper 的 Mapper 接口。
package com.example.mapper;
import com.example.entity.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface UserMapper extends BaseMapper<User> {
}
- 创建 Service 接口和实现
创建 Service 接口和实现,通常使用 MyBatis-Plus 自动生成的方法。
package com.example.service;
import com.example.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
public interface UserService extends IService<User> {
}
package com.example.service.impl;
import com.example.entity.User;
import com.example.mapper.UserMapper;
import com.example.service.UserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}
- 创建 Controller
创建一个 REST 控制器来处理 HTTP 请求。
package com.example.controller;
import com.example.entity.User;
import com.example.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/users")
public class UserController {
private final UserService userService;
@Autowired
public UserController(UserService userService) {
this.userService = userService;
}
@PostMapping
public User save(@RequestBody User user) {
userService.save(user);
return user;
}
}
- 应用启动类
创建一个 Spring Boot 应用的启动类。
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
完成上述步骤后,您就可以在 Spring Cloud 项目中使用 MyBatis-Plus 进行数据库操作了。记得根据您的实际情况调整数据库配置和实体类字段。
在路上 🦕