Spring Boot 集成 MongoDB

Spring Boot 集成 MongoDB

简介

MongoDB 和 Redis 一样,都属于 NoSQL 型的数据库,即非关系型的数据库;区别在于 Redis 的读写速度非常快,

一些操作频繁的场景很适合,作为临时缓存;而 MongoDB 善于存储,面对的是百万级甚至千万级的数据。

Spring-data-mongodb提供了MonngoTemplate和MongoRepository两种方式访问mongodb,

MongoResitory操纵简单 ,

MongoTemplate操作灵活,

我们在项目中可以灵活的使用这两种方式操作mongodb

搭建开发环境

  1. 引入依赖
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>
  1. 修改配置文件
spring.data.mongodb.uri=mongodb://192.168.19.130:27017/test
  1. 创建实体类
@Data
@Document("User")
public class User {
    @Id
    private String id;
    private String name;
    private Integer age;
    private String email;
}
  1. 测试
@SpringBootTest
class MongoDbTestApplicationTests {

    @Autowired
    private MongoTemplate mongoTemplate;//springboot 在底层自动封装了该对象 可以自动注入
    @Test
    void contextLoads() {
        User user = new User();
        user.setAge(20);
        user.setName("zzy");
        user.setEmail("3132820261@qq.com");
        User insert = mongoTemplate.insert(user);
        System.out.println(insert);
    }

}
//结果 User(id=61109fcf1d7f4041e2f50758, name=zzy, age=20, email=3132820261@qq.com) id值 自动生成

springboot实现了对springdata的操作

与HibernateRepository类似,通过继承MongoRepository接口,我们可以非常方便地实现对一个对象的增删改查,要使
用Repository的功能,先继承MongoRepository<T, TD >接口,其中T为仓库保存的bean类,TD为该bean的唯一标识的类型,一般为ObjectId。之后在service中注入该接口就可以使用,无需实现里面的方法,spring会根据定义的规则自动生成。

  1. 创建interface 继承MongoRepository
public interface UserRepository extends MongoRepository<User,String> {
    //添加格外的查询方法
}
posted @ 2021-08-10 18:15  zhiy  阅读(145)  评论(0)    收藏  举报