1.pom.xml
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>
2.在application.properties中添加配置
spring.data.mongodb.uri=mongodb://name:pass@localhost:27017/test 多个IP集群可以采用以下配置: spring.data.mongodb.uri=mongodb://user:pwd@ip1:port1,ip2:port2/database
3.创建实体
package com.example.demo.entry; import java.io.Serializable; public class MongoTest implements Serializable{ private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
4.dao层
package com.example.demo.dao; import com.example.demo.entry.MongoTest; public interface MongoTestInterface { public void saveUser(MongoTest user); public MongoTest findUserByUserName(String userName); public void updateUser(MongoTest user); public void deleteUserById(int age); }
5.实现dao
package com.example.demo.dao; import com.example.demo.entry.MongoTest; 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; @Component public class MongoTestMapper implements MongoTestInterface{ @Autowired private MongoTemplate mongoTemplate; /** * 创建对象 * @param user */ public void saveUser(MongoTest user) { mongoTemplate.save(user); } /** * 根据用户名查询对象 * @param userName * @return */ public MongoTest findUserByUserName(String userName) { Query query=new Query(Criteria.where("name").is(userName)); MongoTest user = mongoTemplate.findOne(query , MongoTest.class); return user; } /** * 更新对象 * @param user */ public void updateUser(MongoTest user) { Query query=new Query(Criteria.where("age").is(user.getAge())); Update update= new Update().set("name", user.getName()).set("age", user.getAge()); //更新查询返回结果集的第一条 mongoTemplate.updateFirst(query,update,MongoTest.class); //更新查询返回结果集的所有 // mongoTemplate.updateMulti(query,update,UserEntity.class); } /** * 删除对象 * @param age */ public void deleteUserById(int age) { Query query=new Query(Criteria.where("age").is(age)); mongoTemplate.remove(query,MongoTest.class); } }
6.测试
@RunWith(SpringRunner.class) @SpringBootTest public class DemoApplicationTests { @Autowired private MongoTestInterface mongoTestMapper; @Test public void testSaveUser() throws Exception { MongoTest user=new MongoTest(); user.setAge(21); user.setName("小明"); mongoTestMapper.saveUser(user); } @Test public void findUserByUserName(){ MongoTest user= mongoTestMapper.findUserByUserName("小明"); System.out.println("user is "+user); } @Test public void updateUser(){ MongoTest user=new MongoTest(); user.setAge(21); user.setName("天空"); mongoTestMapper.updateUser(user); } @Test public void deleteUserById(){ mongoTestMapper.deleteUserById(21); } }