关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、418799587 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 6263|回复: 1

JeecgBoot与MongoDB集成实战文档

[复制链接]
发表于 2021-12-25 20:32:15 | 显示全部楼层 |阅读模式
1. 坐标引入依赖
  1. <dependency>
  2.   <groupId>org.springframework.boot</groupId>
  3.   <artifactId>spring-boot-starter-data-mongodb</artifactId>
  4. </dependency>
复制代码
2. 增加配置类
  1. package org.jeecg.config;

  2. import com.mongodb.client.MongoClient;
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.Configuration;
  5. import org.springframework.data.mongodb.core.MongoClientFactoryBean;
  6. import org.springframework.data.mongodb.core.MongoOperations;
  7. import org.springframework.data.mongodb.core.MongoTemplate;

  8. @Configuration
  9. public class MongoConfig {

  10.     @Bean
  11.     public MongoClientFactoryBean mongoClientFactoryBean() {
  12.         MongoClientFactoryBean factoryBean = new MongoClientFactoryBean();
  13.         factoryBean.setHost("127.0.0.1");
  14.         factoryBean.setPort(27017);
  15.         return factoryBean;
  16.     }
  17.     @Bean
  18.     public MongoTemplate mongoTemplate(MongoClient mongoClient) {
  19.         return new MongoTemplate(mongoClient, "springboot-db");
  20.     }
  21. }
复制代码

说明:新建springboot工程,引入坐标,然后在application.properties文件中加入

  1. spring.data.mongodb.uri=mongodb://localhost:27017/springboot-db
复制代码

springboot就能支持MongoRepository和MongoTemplate读写MongoDb,测试很顺利。

但是将springboot工程中的代码加入到jeecgboot中,运行后一直提示错误

用这个配置类,代替yml中的mongodb配置可解决该错误。


3. 升级积木报表

针对上面提到的mongoTemplate错误,官方已经提供了最新的解决方案,将积木报表升级。这样就可以不用配置类。

  1. <dependency>
  2.     <groupId>org.jeecgframework.jimureport</groupId>
  3.     <artifactId>jimureport-spring-boot-starter</artifactId>
  4.     <version>1.4.2</version>
  5. </dependency>
复制代码

之后在application-dev.yml文件中,加入mongoDb的配置项

  1. spring:
  2.   data:
  3.     mongodb:
  4.       uri: mongodb://localhost:27017/springboot-db
复制代码

4. 创建实体类
  1. package org.jeecg.modules.mongodb.entity;

  2. import org.springframework.data.annotation.Id;

  3. public class Customer {

  4.     @Id
  5.     public String id;

  6.     public String firstName;
  7.     public String lastName;

  8.     public Customer() {}

  9.     public Customer(String firstName, String lastName) {
  10.         this.firstName = firstName;
  11.         this.lastName = lastName;
  12.     }

  13.     @Override
  14.     public String toString() {
  15.         return String.format(
  16.                 "Customer[id=%s, firstName='%s', lastName='%s']",
  17.                 id, firstName, lastName);
  18.     }

  19. }
复制代码

5. 创建Repository
  1. package org.jeecg.modules.mongodb.dao;

  2. import org.jeecg.modules.mongodb.entity.Customer;
  3. import org.springframework.data.mongodb.repository.MongoRepository;

  4. import java.util.List;

  5. public interface CustomerRepository extends MongoRepository<Customer, String> {

  6.      Customer findByFirstName(String firstName);
  7.      List<Customer> findByLastName(String lastName);

  8. }
复制代码

6. 测试用例

用两种方式测试mongoDB,分别为MongoRepository和MongoTemplate

  1. package org.jeecg.modules.mongodb;

  2. import org.jeecg.common.api.vo.Result;
  3. import org.jeecg.modules.mongodb.dao.CustomerRepository;
  4. import org.jeecg.modules.mongodb.entity.Customer;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.data.mongodb.core.MongoTemplate;
  7. import org.springframework.web.bind.annotation.*;

  8. import java.util.HashMap;
  9. import java.util.Map;


  10. /**
  11. * 测试mongodb
  12. */
  13. @RestController
  14. @RequestMapping("/mongo")
  15. public class MongoController {

  16.     @Autowired
  17.     private MongoTemplate mongoTemplate;
  18.     @Autowired
  19.     private CustomerRepository repository;

  20.     @GetMapping("/test1")
  21.     public Result<?> TestMongoDb(){
  22.         Map<String,String> map = new HashMap<>();
  23.         map.put("jeecg","mongodb-jeecg");
  24.         mongoTemplate.insert(map, "testMongoDb");

  25.         return Result.OK("存入成功");
  26.     }

  27.     @GetMapping("/test2")
  28.     public Result<?> TestMongoDb2(){
  29.         repository.deleteAll();

  30.         // save a couple of customers
  31.         repository.save(new Customer("Alice", "Smith"));
  32.         repository.save(new Customer("Bob", "Smith"));

  33.         // fetch all customers
  34.         System.out.println("Customers found with findAll():");
  35.         System.out.println("-------------------------------");
  36.         for (Customer customer : repository.findAll()) {
  37.             System.out.println(customer);
  38.         }
  39.         System.out.println();

  40.         // fetch an individual customer
  41.         System.out.println("Customer found with findByFirstName('Alice'):");
  42.         System.out.println("--------------------------------");
  43.         System.out.println(repository.findByFirstName("Alice"));

  44.         System.out.println("Customers found with findByLastName('Smith'):");
  45.         System.out.println("--------------------------------");
  46.         for (Customer customer : repository.findByLastName("Smith")) {
  47.             System.out.println(customer);
  48.         }

  49.         return Result.OK("存入成功");
  50.     }

  51. }
复制代码

7. 测试结果
测试后的数据库截图








发表于 2023-3-23 17:57:06 | 显示全部楼层
这时相机的稳定性问题就会变得非常突出,一丁点儿的幸运飞艇直播福彩双色球结果幸运时时彩走势图晃动都会致使成像模糊不清,导致拍摄失败
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表