之前我们介绍的 MongoDB 的操作都是在 shell 命令中写的,在项目开发时,我们当然都是用程序去操作 MongoDB 的,本文来看看 SpringBoot 是如何整合 MongoDB 的。
Maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
配置YML
spring:
data:
mongodb:
uri: mongodb://localhost:27017/nameicc
实体类
创建实体类User,与 MongoDB 中的集合建立映射关系。
@Document(collection = "user")
@Data
public class User implements Serializable {
@Indexed
private int id;
@Indexed
private String name;
private int age;
private String sex;
@Field("phone")
private String mobile;
private String address;
}
注解说明:
@Document 标注在实体类上,标明由 MongoDB 进行实例化。通过 collection 参数指定 MongoDB 中的集合。
@Indexed 声明该属性对应的字段需要加索引。通过 unique 参数标识是否是唯一索引,默认 false。
@Field 声明该属性对应的 MongoDB 中的字段名。
Service实现
@Component
public class UserService {
@Resource
private MongoTemplate mongoTemplate;
public void insert(User user) {
mongoTemplate.insert(user);
}
public void deleteByName(String name) {
Query query = new Query(Criteria.where("name").is(name));
mongoTemplate.remove(query, User.class);
}
public void updateByName(String name, String key, String value) {
Query query = new Query(Criteria.where("name").is(name));
mongoTemplate.updateFirst(query, Update.update(key, value), User.class);
}
public User queryByName(String name) {
Query query = new Query(Criteria.where("name").is(name));
return mongoTemplate.findOne(query, User.class);
}
public List<User> queryAll() {
return mongoTemplate.findAll(User.class);
}
}
测试类
@SpringBootTest
@RunWith(SpringRunner.class)
public class UserTest {
@Resource
private UserService userService;
@Test
public void testInsert() {
User user = new User();
user.setId(4);
user.setName("nameicc");
user.setSex("boy");
user.setAge(26);
user.setMobile("13131313131");
user.setAddress("Qingdao");
userService.insert(user);
}
@Test
public void testDelete() {
userService.deleteByName("nameicc");
}
@Test
public void testUpdate() {
userService.updateByName("nameicc", "address", "Shandong Qingdao");
}
@Test
public void testQueryByName() {
User user = userService.queryByName("nameicc");
System.out.println(user);
}
@Test
public void testQueryList() {
List<User> userList = userService.queryAll();
System.out.println(userList);
}
}
总结
本文只是简单完成增删改查操作,SpringBoot 整合 MongoDB 还有很多知识待探索。
版权声明:本文为tingyu1995原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。