下面详细介绍一下“SpringBoot整合MongoDB完整实例代码”的完整攻略,并给出两个示例。
前置条件
在开始编写代码之前,需要确保以下组件已经安装。
- JDK 1.8 或者以上
- Maven 3.x 或者以上
- MongoDB 数据库
创建Spring Boot项目
首先我们需要创建一个Spring Boot项目,可以使用Spring官方提供的start.spring.io工具快速创建。需要勾选 Spring Web
和 Spring 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的完整攻略和两个示例代码。