注册

SpringBoot整合MongoDB完整实例代码

下面详细介绍一下“SpringBoot整合MongoDB完整实例代码”的完整攻略,并给出两个示例。

前置条件

在开始编写代码之前,需要确保以下组件已经安装。

  1. JDK 1.8 或者以上
  2. Maven 3.x 或者以上
  3. MongoDB 数据库

创建Spring Boot项目

首先我们需要创建一个Spring Boot项目,可以使用Spring官方提供的start.spring.io工具快速创建。需要勾选 Spring WebSpring Data MongoDB 两个依赖。

配置application.properties

在创建Spring Boot项目后,需要在src/main/resources目录下新建一个application.properties文件,并添加以下配置属性:

spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=testdb

这里的配置表示MongoDB数据库的地址是localhost:27017,database名称为testdb。如果你的MongoDB部署在其他服务器上或者有其他名称,请根据实际情况修改配置。

编写实体类

在MongoDB中,每个记录都是一个Document对象,而每个Document对象对应Java中的一个POJO类。因此,我们需要编写一个实体类作为与MongoDB进行交互的数据模型。

@Document(collection = "users")
@Data
public class User {
    @Id
    private String id;
    private String name;
    private int age;
}

这里使用了Spring Data MongoDB提供的 @Document@Id 注解,用于将Java对象映射为MongoDB中的Document对象。

编写数据访问层

在Spring Boot中,我们可以通过定义一个继承MongoRepository类的接口来实现基本的数据访问操作。这里给出两个示例。

示例1: CRUD操作

@Repository
public interface UserRepository extends MongoRepository {
}

这个接口中继承了MongoRepository类,它会自动实现常见的CRUD操作。我们可以在UserRepository中添加自己的方法,重载父类的方法即可。

示例2: 自定义查询

@Repository
public interface UserRepository extends MongoRepository {
    List findByName(String name);
}

这个接口中,findByName 方法用于按照姓名查询用户。

编写控制器

在Spring Boot中,控制器对外提供RESTful接口,用于接收参数并进行处理。这里给出一个示例。

@RestController
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserRepository userRepository;

    @PostMapping
    public User saveUser(@RequestBody User user) {
        return userRepository.save(user);
    }

    @GetMapping("/{id}")
    public User getUser(@PathVariable String id) {
        return userRepository.findById(id).orElse(null);
    }

    @GetMapping
    public List listUsers() {
        return userRepository.findAll();
    }

    @GetMapping("/name/{name}")
    public List listUsersByName(@PathVariable String name) {
        return userRepository.findByName(name);
    }

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

在这个控制器中,由于我们使用了@RestController注解,所有的方法都会自动返回JSON格式的数据。

运行测试

通过以上步骤,我们已经成功创建了一个Spring Boot项目,并完成了MongoDB的配置、实体类、数据访问层和控制器的编写。下面可以启动项目并进行测试了。

示例1: CRUD操作

启动项目后,可以使用POST方式访问/users接口来创建一个用户,使用GET方式访问/users/{id}接口来获取一个用户的信息,使用PUT方式访问/users接口来修改一个用户的信息,使用DELETE方式访问/users/{id}接口来删除一个用户。

示例2: 自定义查询

使用GET方式访问/users/name/{name}接口,可以按照姓名查询用户。

以上就是SpringBoot整合MongoDB的完整攻略和两个示例代码。