SpringBoot-集成MongoDB

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

一、添加MongoDB依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

二、数据源配置

格式如下:

# 设置了用户名和密码
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<MongoDB> 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<MongoDB> findAll() {
    return repository.findAll();
  }

  @Override
  public MongoDB findById(String id) {
    Optional<MongoDB> 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<MongoDB> 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,如下:

4.2、save接口测试

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

4.3、findByCode接口测试

4.4、findById接口测试 

4.5、findAll接口测试

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值