一.引入Starter依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
二.进行数据库配置放在application下
spring.data.mongodb.uri=mongodb://192.168.200.130:27017/test
注意要把端口号改成自己虚拟机上的端口号
三.创建实体类方便于测试
package com.atguigu.yygh.hosp.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Actor {
private String id;
private String actorName;
private boolean gender;
private Date birth;
}
四.创建测试类,注入MongoTemplate
1.进行增加操作
package com.atguigu.yygh.hosp;
import com.atguigu.yygh.hosp.bean.Actor;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.mongodb.core.MongoTemplate;
import java.util.Date;
@SpringBootTest
public class AppTest {
@Autowired
private MongoTemplate mongoTemplate;
@Test
public void Insert(){
mongoTemplate.insert(new Actor("11","陶喆",true,new Date()));
}
}
运行后
注意,insert只能进行添加操作(可以进行批量增加)
2.我们可以用save进行修改操作
(save可以添加和修改,但每次只能增加一条)
这里我们和上面的id是一致,进行修改操作
@Test
public void Insert(){
mongoTemplate.save(new Actor("11","王力宏",true,new Date()));
}
修改成功
3.下面我们还有另外一种修改方式
先查出我们要修改的数据库 ,然后再利用set去进行操作
//修改操作
@Test
public void testModify(){
Actor actor = mongoTemplate.findById("11", Actor.class);
actor.setActorName("周杰伦");
mongoTemplate.save(actor);
}
运行后
可以知道,MongoDB利用的是覆盖式修改
(你改了什么就覆盖什么,其他的都不会变)
5. 下面来进行删除操作
利用id条件为11的删除
@Test
public void delete(){
Query query=new Query(Criteria.where("id").is("11"));
DeleteResult remove = mongoTemplate.remove(query, Actor.class);
System.out.println(remove.getDeletedCount());
}
运行后,返回为1,因为我们删除的就一条数据