首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java开发之神兵利器——Spring Boot中MongoDB的快速集成和使用

MongoDB作为当今最流行的NoSQL数据库,很多公司用MongoDB来做大规模数据查询和离线分析。MongoDB具有传统数据的功能:二级索引、完善的查询系统、严格一致性等。它是专门为可扩展性、高性能和高可用性而设计的数据库。它可以从单服务器部署扩展到大型、复杂的多数据中心结构。

Spring Boot操作数据库的各种starters都继承于Spring Data,Spring Data是为了简化数据库操作而封装的一个组件包,提供了操作各种数据的支持。对于MongoDB, Spring Boot提供了spring-boot-starter-data-mongodb。Spring Boot操作MongoDB有两种较流行的使用方法,一种是将MongoTemplate注入到Dao中使用,一种是集成MongoRepository,MongoRepository内置了许多方法可以直接使用。

1.pom包配置

pom文件里添加spring-boot-starter-data-monogodb包引用:

2.添加properties

在项目的appliaction.properties中添加以下配置:

3.创建实体

定义一个实体类Student,具体如下:

4.使用MongoTemplate

4.1 定义CRUD操作

首先定义一个StudentRepository,定义了对Student对象的增、删、改、查的操作。代码如下:

然后定义一个StudentRepositoryImpl来实现StudentRepository,并且注入MongoTemplate来实现增删改查的操作。代码如下:

4.2 验证结果

在test中定义MongoDBTest类,来验证结果。

首先定义一个save的test方法,来验证新增对象是否有效。代码如下:

运行得结果如下:

通过可视化工具,我们可以看到成功插入一条数据。

然后再定义一个根据name查找的方法。代码如下:

输出结果如下:

上面结果说明,查找方法有效。

然后再定义一个update方法。代码如下:

执行上述方法,得到结果如下:

根据上面结果可以看到,存储的对象被更新了,说明update的方法也是有效的。

最后定义一个delete的方法。代码如下:

执行上述方法,通过工具我们发现Student不存在了,说明delete方法也生效了。

至此,我们验证了通过MongoTemplate我们可以实现对mongodb的增删改查操作。

5.使用MongoRepository

MongoRepository继承于PagingAndSortingRepository,使用方法和前面的Spring Data JPA基本一样,可以根据方法名自动生成SQL。

5.1 定义StudentRepository

为了和上面的Repository作区分,我们定义一个StudentRepository1来继承MongoRepository,这样我们就可以使用MongoRepository的内置方法。代码如下:

5.2 验证结果

接下来我们来定义Test方法验证上述方法是否有效。

首先,我们验证增加Student的方法。代码如下:

通过可视化工具,结果如下:

可以看到成功插入了一条Student数据,说明保存的方法生效了。

然后,我们来定义一个查找Student的方法。代码如下:

输出结果如下:

上述结果说明,查找的方法也是有效的。

然后,我们定义一个修改Student的方法。代码如下:

可视化结果如下:

说明update的方法也生效了。同时update和insert的方法相同,都是执行的save()操作。

最后,我们来测试delete数据的操作。代码如下:

通过可视化工具,发现student被成功删除。说明删除的方法也是有效的。

通过上面的验证,我们发现使用MongoRepository也能成功实现mongodb的CRUD操作。

6.总结

通过以上实践我们发现,通过两种方式都可以方便的操作MongoDB数据库。MongoRepository的使用方式相对简单,默认实现了很多简单的增删改查操作;复杂的CRUD可以通过自行封装MongoTemplate来实现。那么对于MongoDB的操作是不是很简单呢?那就赶紧来行动吧!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190129G0B4GL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券