java操作mongdb【springboot】

简介: java操作mongdb【springboot】

 搭建项目

创建Maven项目java-mongdb

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.3</version>
        <relativePath/>
    </parent>
    <groupId>com.example</groupId>
    <artifactId>java-mongdb</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <dependencies>
        <!--mongodb-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!--springMVC-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--test-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

image.gif

application.yml

server:
  port: 8080
spring:
  data:
    mongodb:
      host: 192.168.66.101
      port: 27017
      username: root
      password: root
      database: local
      authentication-database: admin

image.gif

主启动类

@SpringBootApplication
public class Main {
    public static void main(String[] args) {
        SpringApplication.run(Main.class,args);
    }
}

image.gif

操作mongdb

录入数据

db.orders.insertMany( [
  { _id: 0, name: "Pepperoni", size: "small", price: 19, quantity: 10, date: ISODate( "2030-03-13T08:14:30Z" ) },
  { _id: 1, name: "Pepperoni", size: "medium", price: 20, quantity: 20, date : ISODate( "2030-03-13T09:13:24Z" ) },
  { _id: 2, name: "Pepperoni", size: "large", price: 21, quantity: 30, date : ISODate( "2030-03-17T09:22:12Z" ) },
  { _id: 3, name: "Cheese", size: "small", price: 12, quantity: 15, date : ISODate( "2030-03-13T11:21:39.736Z" ) },
  { _id: 4, name: "Cheese", size: "medium", price: 13,quantity:50, date : ISODate( "2031-01-12T21:23:13.331Z" ) },
  { _id: 5, name: "Cheese", size: "large", price: 14, quantity: 10, date : ISODate( "2031-01-12T05:08:13Z" ) },
  { _id: 6, name: "Vegan", size: "small", price: 17, quantity: 10, date : ISODate( "2030-01-13T05:08:13Z" ) },
  { _id: 7, name: "Vegan", size: "medium", price: 18, quantity: 10, date : ISODate( "2030-01-13T05:10:13Z" ) }
] )

image.gif

MongoTemplate写法

public interface OrdersDao {
    //根据订单名称查询订单集合
    List<Orders> findOrderByName(String name);
}

image.gif

@Repository
public class OrdersDaoImpl implements OrdersDao {
    @Autowired
    protected MongoTemplate mongoTemplate;
    @Override
    public List<Orders> findOrderByName(String name) {
        Query query = new Query();
        query.addCriteria(Criteria.where("name").is(name));
        return mongoTemplate.find(query, Orders.class);
    }
}

image.gif

MongoRepository写法

public interface OrdersRepository extends MongoRepository<Orders,String> {
    List<Orders> findOrderBySize(String size);
}

image.gif

实体类

@Data
@NoArgsConstructor
public class Orders {
    private String _id;
    private String name;
    private String size;
    private Integer price;
    private Integer quantity;
    private Date date;
}

image.gif

服务层

public interface OrderService {
    //根据订单名称查询订单集合
    List<Orders> getOrdersByName(String name);
    //根据大小查询订单集合
    List<Orders> getOrdersBySize(String size);
}

image.gif

@Service
public class OrderServiceImpl implements OrderService {
    @Autowired
    private OrdersDao ordersDao;
    @Autowired
    private OrdersRepository ordersRepository;
    @Override
    public List<Orders> getOrdersByName(String name) {
        return ordersDao.findOrderByName(name);
    }
    @Override
    public List<Orders> getOrdersBySize(String size) {
        return ordersRepository.findOrderBySize(size);
    }
}

image.gif

控制层

@RestController
public class TestController {
    @Autowired
    private OrderService orderService;
    @GetMapping("/template/getOrdersByName")
    public List<Orders> getOrdersByName(String name) {
        return orderService.getOrdersByName(name);
    }
    @GetMapping("/repository/getOrdersBySize")
    public List<Orders> getOrdersBySize(String size) {
        return orderService.getOrdersBySize(size);
    }
}

image.gif

测试

MongoTemplate写法【dao

http://localhost:8080/template/getOrdersByName?name=Pepperoni

image.gif

image.gif编辑

MongoRepository写法【respository

http://localhost:8080/repository/getOrdersBySize?size=large

image.gif

image.gif编辑


相关文章
|
3月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的服装商城管理系统
基于Java+Springboot+Vue开发的服装商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的服装商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
176 2
基于Java+Springboot+Vue开发的服装商城管理系统
|
5天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
2月前
|
JavaScript 前端开发 Java
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
这篇文章详细介绍了如何在前端Vue项目和后端Spring Boot项目中通过多种方式解决跨域问题。
380 1
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
|
1月前
|
监控 前端开发 Java
Java SpringBoot –性能分析与调优
Java SpringBoot –性能分析与调优
|
1月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
2月前
|
JSON Java Maven
实现Java Spring Boot FCM推送教程
本指南介绍了如何在Spring Boot项目中集成Firebase云消息服务(FCM),包括创建项目、添加依赖、配置服务账户密钥、编写推送服务类以及发送消息等步骤,帮助开发者快速实现推送通知功能。
91 2
|
3月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的大学竞赛报名管理系统
基于Java+Springboot+Vue开发的大学竞赛报名管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的大学竞赛报名管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
230 3
基于Java+Springboot+Vue开发的大学竞赛报名管理系统
|
3月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的蛋糕商城管理系统
基于Java+Springboot+Vue开发的蛋糕商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的蛋糕商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
171 3
基于Java+Springboot+Vue开发的蛋糕商城管理系统
|
3月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的美容预约管理系统
基于Java+Springboot+Vue开发的美容预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的美容预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
58 3
基于Java+Springboot+Vue开发的美容预约管理系统
|
3月前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的健身房管理系统
基于Java+Springboot+Vue开发的健身房管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的健身房管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
113 5
基于Java+Springboot+Vue开发的健身房管理系统