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);
}
}