SpringBoot-集成MongoDB

本篇既然是学习如何集成MongoDB,那必然要先安装MongoDB,这是毋庸置疑的。安装好之后,我们直接开始“干”。

一、添加MongoDB依赖


    org.springframework.boot
    spring-boot-starter-data-mongodb

二、数据源配置

格式如下:

# 设置了用户名和密码
spring.data.mongodb.uri=mongodb://name:pass@localhost:27017/dbname

# 没有设置密码,可不配置
spring.data.mongodb.uri=mongodb://localhost:27017/dbname

三、编码

准备工作,相关配置都好了之后,我们动手写一个简单的测试例子。

3.1、写一个Entity

import org.springframework.data.annotation.Id;

/**
 * @author Administrator
 *
 */
public class MongoDB {

  @Id
  private String id;
  private String name;
  private String code;

  // 省略getter和setter

  @Override
  public String toString() {
    return name + "[" + code + "]";
  }
}

3.2、定义一个业务层接口

public interface MongoDBService {

  List findAll();

  MongoDB findById(String id);

  String save(MongoDB entity) throws Exception;

  MongoDB findByCode(String code);
}

3.3、业务层接口实现

@Service
public class MongoDBServiceImpl implements MongoDBService {

  @Autowired
  private MongoDBRepository repository;

  @Override
  public List findAll() {
    return repository.findAll();
  }

  @Override
  public MongoDB findById(String id) {
    Optional optional = repository.findById(id);
    if (optional.isPresent()) {
      return optional.get();
    }
    return null;
  }

  @Override
  public String save(MongoDB entity) throws Exception {
    MongoDB result = repository.save(entity);
    return result.getId();
  }

  @Override
  public MongoDB findByCode(String code) {
    return repository.findByCode(code);
  }

}

3.4、定义一个Controller

@RestController
@RequestMapping("/mongodb/*")
public class MongoDBController {

  @Autowired
  private MongoDBService mongoDBService;

  @GetMapping(value = "findAll")
  public List findAll() {
    return mongoDBService.findAll();
  }

  @GetMapping(value = "{id}")
  public MongoDB findById(@PathVariable("id") String id) {
    return mongoDBService.findById(id);
  }

  @PostMapping(value = "save")
  public String save(@RequestBody MongoDB entity) throws Exception {
    return mongoDBService.save(entity);
  }

  @GetMapping(value = "byCode/{code}")
  public MongoDB findByCode(@PathVariable("code") String code) {
    return mongoDBService.findByCode(code);
  }
}

四、测试

4.1、数据库的创建

当然这个是不用我们手动创建数据库的,当启动springboot时,会自动帮我们创建springboot_project数据库,并创建一个对应到MongoDB实体的“表”(在MongoDB的世界里,我们称之为集合)mongoDB,如下:

SpringBoot-集成MongoDB_第1张图片

4.2、save接口测试

SpringBoot-集成MongoDB_第2张图片

我们查询mongoDB集合,看是否存在刚刚保存的一条文档(MongoDB中的术语)。

SpringBoot-集成MongoDB_第3张图片

4.3、findByCode接口测试

SpringBoot-集成MongoDB_第4张图片

4.4、findById接口测试 

SpringBoot-集成MongoDB_第5张图片

4.5、findAll接口测试

SpringBoot-集成MongoDB_第6张图片

源代码地址:https://gitee.com/chengab/SpringBoot/tree/master/springboot/src/main/java/com/study/springboot/mongodb 

你可能感兴趣的:(spring集成mongodb,SpringBoot)