首页 > 数据库 >Springboot整合mongodb

Springboot整合mongodb

时间:2023-06-17 19:55:06浏览次数:38  
标签:Springboot Person mongodb class person 整合 Query 查询 public

入门案例

  1. 创建工程,导入依赖

导入依赖

点击查看代码
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
            <version>2.3.9.RELEASE</version>
        </dependency>
编写application.yml配置文件
点击查看代码
spring:
  data:
    mongodb:
      uri: mongodb://192.168.200.130:27017/集合名
编写启动类
点击查看代码
@SpringBootApplication
public class MongoApplication {

    public static void main(String[] args) {
        SpringApplication.run(MongoApplication.class, args);
    }
}
编写实体类
点击查看代码
@Data
@AllArgsConstructor
@NoArgsConstructor
@Document(value="user")
public class Person {

    @Id
    private ObjectId id;
    @Field("username")
    private String name;
    private int age;
    private String address;
}
  1. 通过MongoTemplate完成CRUD操作

注入MongoTemplate对象

点击查看代码
@Autowired
    private MongoTemplate mongoTemplate;

保存

点击查看代码
@Test
    public void testSave() {
        for (int i = 0; i < 10; i++) {
            Person person = new Person();
            person.setId(ObjectId.get()); //ObjectId.get():获取一个唯一主键字符串
            person.setName("张三"+i);
            person.setAddress("北京顺义"+i);
            person.setAge(18+i);
            mongoTemplate.save(person);
        }
    }

查询-查询所有

点击查看代码
@Test
    public void testFindAll() {
        List<Person> list = mongoTemplate.findAll(Person.class);
        for (Person person : list) {
            System.out.println(person);
        }
    }

查询条件对象

点击查看代码
@Test
    public void testFind() {
        //查询年龄小于20的所有人
        Query query = new Query(Criteria.where("age").lt(20)); //查询条件对象
        //查询
        List<Person> list = mongoTemplate.find(query, Person.class);
        for (Person person : list) {
            System.out.println(person);
        }
    }

分页查询

点击查看代码
@Test
    public void testPage() {
        Criteria criteria = Criteria.where("age").lt(30);
        //1 查询总数
        Query queryCount = new Query(criteria);
        long count = mongoTemplate.count(queryCount, Person.class);
        System.out.println(count);
        //2 查询当前页的数据列表, 查询第二页,每页查询2条
        Query queryLimit = new Query(criteria)
                .limit(2)//设置每页查询条数
                .skip(2) ; //开启查询的条数 (page-1)*size
        List<Person> list = mongoTemplate.find(queryLimit, Person.class);
        for (Person person : list) {
            System.out.println(person);
        }
    }

更新,根据id,更新年龄

点击查看代码
@Test
    public void testUpdate() {
        //1 条件
        Query query = Query.query(Criteria.where("id").is("5fe404c26a787e3b50d8d5ad"));
        //2 更新的数据
        Update update = new Update();
        update.set("age", 20);
        mongoTemplate.updateFirst(query, update, Person.class);
    }

根据id删除

点击查看代码
@Test
    public void testRemove() {
        Query query = Query.query(Criteria.where("id").is("5fe404c26a787e3b50d8d5ad"));
        mongoTemplate.remove(query, Person.class);
    }

标签:Springboot,Person,mongodb,class,person,整合,Query,查询,public
From: https://www.cnblogs.com/wzh-Official/p/17488143.html

相关文章

  • SpringBoot--MQ不生效
    Cannotresolveconfigurationproperty'rabbitmq.username'rabbitmq:username:adminpassword:adminvirtual-host:test_datalistener:simple:#表示消费者消费成功消息以后需要手工的进行签收(ack确认),默认为autoacknowledge-mode:manualprefet......
  • springboot @Bean自动注册
    这个注解,可以注册Bean到spring容器中@BeanpublicXXXBeanxxxBean(){returnnewXXXBean();}这个注解也可以用在void方法上,用在在spring容器启动后固定执行某个代码逻辑:@BeanpublicvoidxxxHandler(){System.out.println("我想容器启动后执行一次某个代......
  • SpringBoot学习笔记
    新建SpringBoot项目阿里云地址:https://start.aliyun.com异常消息处理//1.自定义异常类,继承RuntimeExceptionpublicclassMyExceptionextendsRuntimeException{publicMyException(){}}//2.定义全局异常类@RestControllerAdvicepublicclassGloabExcept......
  • MongoDB入门操作
    数据库操作查看所有数据库--->showdbs通过use关键字切换数据库--->usetestdb删除数据库--->db.dropDatabase()新增数据db.COLLECTION_NAME.insert(document)注意事项:在MongoDB中,存储的文档结构是一种类似于json的结构,称之为bson(全称为:BinaryJSON)如:{id:2,userna......
  • spring6整合JUnit5
    1. Spring对JUnit4的支持   136准备工作:pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:sch......
  • MongoDB入门介绍
    MongoDB简介MongoDB是一个开源、高性能、支持海量数据存储的文档型数据库是NoSQL数据库产品中的一种,是最像关系型数据库(MySQL)的非关系型数据库数据特征数据存储量较大,甚至是海量对数据读写的响应速度要求较高某些数据安全性要求不高,可以接受一定范围内的误差MongoDB存储......
  • SpringBoot整合JavaMail
    第一步:第二步: 第三步:第四步: ......
  • springboot2 自动装配原理
    springboot自动装配Spring支持两种bean配置方式:XML配置、JavaConfig配置@SpringBootApplication注解我们创建一个springboot项目后,一般要用该注解,然后在springbootApplication.run方法传入标注了该注解的类,这样就可以去加载spring的相关操作@SpringBootApplicationpublic......
  • SpringBoot整合Quartz
    第一步: 第二步: 第三步: ......
  • java基于springboot+vue的网吧管理系统,附源码+数据库+论文+PPT,适合课程设计、毕业设计
    1、项目介绍随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,网吧管理系统就是信息时代变革中的产物之一。任何系统都要遵循系统设计的基......