SpringBoot整合MongoDB

it2025-04-13  22

pom文件

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.3.RELEASE</version> </parent> <groupId>com.sunyuqi.mongodb</groupId> <artifactId>java-mongodb</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> </dependency> </dependencies> </project>

application.properties配置文件

spring.data.mongodb.uri=mongodb://192.168.130.128:27017/testdb

实体类User和Address

User

package com.sunyuqi.mongodb.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.bson.types.ObjectId; @Data @AllArgsConstructor @NoArgsConstructor public class User { private ObjectId id; private String name; private int age; private Address address; }

Address

package com.sunyuqi.mongodb.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor public class Address { private String street; private String city; private String zip; }

编写UserDao

package com.sunyuqi.mongodb.dao; import com.mongodb.client.result.DeleteResult; import com.mongodb.client.result.UpdateResult; import com.sunyuqi.mongodb.pojo.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Component; import java.util.List; @Component public class UserDAO { @Autowired private MongoTemplate mongoTemplate; public User saveUser(User user){ return this.mongoTemplate.save(user); } public List<User> queryUserListByName(String name) { Query query = Query.query(Criteria.where("name").is(name)); return this.mongoTemplate.find(query, User.class); } public List<User> queryUserListByNameAndAge(String name,int age){ Query query = Query.query(Criteria.where("name").is(name).andOperator(Criteria.where("age").is(age))); return this.mongoTemplate.find(query,User.class); } public List<User> queryPageUserList(Integer page, Integer rows) { Query query = new Query().limit(rows).skip((page - 1) * rows); return this.mongoTemplate.find(query, User.class); } public UpdateResult update(User user) { Query query = Query.query(Criteria.where("id").is(user.getId())); Update update = Update.update("age", user.getAge()); return this.mongoTemplate.updateFirst(query, update, User.class); } public DeleteResult deleteById(String id) { Query query = Query.query(Criteria.where("id").is(id)); return this.mongoTemplate.remove(query, User.class); } }

编写启动类

package com.sunyuqi.mongodb; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class MongoApplication { public static void main(String[] args) { SpringApplication.run(MongoApplication.class, args); } }

编写单元测试

package com.sunyuqi.mongodb; import com.sunyuqi.mongodb.dao.UserDAO; import com.mongodb.client.result.DeleteResult; import com.mongodb.client.result.UpdateResult; import com.sunyuqi.mongodb.pojo.Address; import com.sunyuqi.mongodb.pojo.User; import org.bson.types.ObjectId; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.util.List; @RunWith(SpringRunner.class) @SpringBootTest(classes = MongoApplication.class) public class TestSpringUser { @Autowired private UserDAO userDAO; @Test public void testSave(){ User user = new User(ObjectId.get(), "爱德华", 58,new Address("香港南路", "香港市", "666666")); this.userDAO.saveUser(user); } @Test public void testQueryUserListByName(){ List<User> list = this.userDAO.queryUserListByName("爱德华"); for (User user : list) { System.out.println(user); } } @Test public void testQueryUserListByNameAndAge(){ List<User> list = this.userDAO.queryUserListByNameAndAge("爱德华",50); for (User user : list) { System.out.println(user); } } @Test public void testQueryPageUserList(){ List<User> list = this.userDAO.queryPageUserList(1, 2); for (User user : list) { System.out.println(user); } } @Test public void testUpdatae(){ List<User> users = this.userDAO.queryUserListByName("爱德华"); User user = users.get(0); user.setAge(60); UpdateResult update = this.userDAO.update(user); System.out.println(update); } @Test public void testDelete(){ DeleteResult deleteResult = this.userDAO.deleteById("5f903d602b935e26d7fae98c"); System.out.println(deleteResult); } }
最新回复(0)