1.mongodb所需要依赖
<!-- 引入monggodb启动器-->
<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>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
2.配置文件配置mongodb数据库
#配置monggodb数据库
spring:
data:
mongodb:
host: 127.0.0.1 #数据库主机ip
port: 27017 #数据库监听端口
datbase: offcn #连接数据库名称
3.java实体类 映射到 mongodb集合
package com.offcn.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Data
@AllArgsConstructor
@NoArgsConstructor
//表示java实体类映射 monggodb 中的集合 注解
@Document("user")
public class User {
@Id //表示主键
private Long id;
private String name;
private Integer age;
}
4.springboot对mongodb增删改查
1.mongodb数据操作类工具
2.添加
3.查询
4.更新
5.删除
示例代码(增删改查):
package com.offcn;
import com.offcn.pojo.User;
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 org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import java.util.List;
@SpringBootTest
class SpringbootMongodb01ApplicationTests {
// 注入springboot提供的一个mongodb数据操作类工具
// 注入注解(mongodb数据操作类工具)
@Autowired
private MongoTemplate mongoTemplate;
@Test
// 1.测试新增数据
public void teatAdd(){
User user= new User(1000L,"张三",18);
// 使用mongodb数据操作类工具,保存数据到数据库
mongoTemplate.insert(user);
}
// 2.测试查询
@Test
public void testQuery(){
// 创建查询器对象----》mongodb core包下
// Criteria查询条件
Query query=new Query(Criteria.where("id").is(1000L));
// 使用mongodb工具类发出查询、反射封装
List<User> userList=mongoTemplate.find(query,User.class);
for(User user:userList){
System.out.println(user);
}
}
// 3.更改数据
@Test
public void testUpdate(){
// 查询更新对象
Query query=new Query(Criteria.where("id").is(1000L));
// 更新对象
Update update=new Update().set("name","张三update").set("age",88);
// 使用mongodb工具类发出更新、反射封装
// getModifiedCount()返回更新条数
long cnt= mongoTemplate.updateFirst(query,update,User.class).getModifiedCount();
System.out.println("更新成功:"+cnt);
}
// 4.删除
@Test
public void testDelete(){
// 创建查询器对象
Query query=new Query(Criteria.where("id").is(1000L));
// 使用mongodb工具类发出删除、反射封装
// getDeletedCount();返回删除条数
long cnt=mongoTemplate.remove(query,User.class).getDeletedCount();
System.out.println("删除数据条数"+cnt);
}
}