0
点赞
收藏
分享

微信扫一扫

mybatis plus 集成 mongodb yml

孟祥忠诗歌 2023-12-28 阅读 45

MyBatis Plus集成MongoDB

介绍

MyBatis Plus是一个基于MyBatis的增强工具,它简化了MyBatis的使用,提供了更方便的API和更强大的功能。MongoDB是一个流行的NoSQL数据库,具有高性能、高可扩展性和灵活的数据模型。在本文中,我们将介绍如何使用MyBatis Plus集成MongoDB,并且提供了相应的代码示例。

配置

首先,我们需要在项目中添加MyBatis Plus和MongoDB的依赖。在pom.xml文件中添加以下依赖:

<!-- MyBatis Plus -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>${mybatis-plus.version}</version>
</dependency>

<!-- MongoDB -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

接下来,需要在application.yml文件中配置MongoDB的连接信息。示例如下:

spring:
  data:
    mongodb:
      host: localhost
      port: 27017
      database: mydb

实体类

在集成MongoDB之前,我们需要定义与数据库中集合对应的实体类。在本文中,我们以用户信息为例,创建一个名为User的实体类。示例代码如下:

@Document(collection = "user")
public class User {
    @Id
    private String id;

    private String username;
    private String password;
    // 省略getter和setter方法
}

在实体类上使用@Document注解标识集合名称,使用@Id注解标识主键字段。

Mapper接口

接下来,我们需要创建一个继承自BaseMapper的Mapper接口。BaseMapper是MyBatis Plus提供的基础Mapper接口,可以直接继承并使用其中的方法。示例代码如下:

@Mapper
public interface UserMapper extends BaseMapper<User> {
}

Service层

在Service层,我们可以通过调用Mapper接口来实现对数据库的操作。以下是一个示例的Service类:

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public void saveUser(User user) {
        userMapper.insert(user);
    }

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

    public User getUserById(String id) {
        return userMapper.selectById(id);
    }

    public void deleteUser(String id) {
        userMapper.deleteById(id);
    }
}

在上述代码中,我们通过注入UserMapper来调用相应的方法进行数据库操作。

控制器

最后,在控制器中,我们可以通过调用Service层的方法来处理前端的请求。以下是一个示例的控制器类:

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @PostMapping("/")
    public void saveUser(@RequestBody User user) {
        userService.saveUser(user);
    }

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

    @GetMapping("/{id}")
    public User getUserById(@PathVariable String id) {
        return userService.getUserById(id);
    }

    @DeleteMapping("/{id}")
    public void deleteUser(@PathVariable String id) {
        userService.deleteUser(id);
    }
}

在上述代码中,我们通过注解来指定接口的路径和请求方式,并调用相应的Service方法。

状态图

下面是一个简单的状态图示例,展示了用户在系统中的不同状态之间的转换。

stateDiagram
    [*] --> Registered
    Registered --> Verified
    Registered --> Suspended
    Verified --> Active
    Active --> Suspended
    Suspended --> [*]

在上述状态图中,用户的状态可以是Registered(已注册)、Verified(已验证)、Active(已激活)和Suspended(已暂停)。

序列图

下面是一个示例的序列图,展示了用户创建和获取过程中的交互过程。

sequenceDiagram
    participant Client
    participant Controller
    participant Service
    participant Mapper

    Client ->> Controller: 创建用户
    Controller ->> Service: 调用保存方法
    Service ->> Mapper: 调用插入方法
    Mapper ->
举报

相关推荐

0 条评论