Spring Boot中使用MongoDB数据库的方法

  • A+
所属分类:MongoDB

我们在产物顶用到 NoSQL 数据库 MongoDB 。

下面就来简单先容一下 MongoDB ,而且经由过程一个例子来先容 Spring Boot 中对 MongoDB 拜访的设置装备摆设和使用。

MongoDB简介

MongoDB是一个基于散布式文件存储的数据库,它是一个介于关系数据库和非关系数据库之间的产物,其主要目的是在键/值存储方式(提供了高机能和高度伸缩性)和传统的RDBMS体系(具有丰硕的功效)之间架起一座桥梁,它集两者的上风于一身。

MongoDB支撑的数据布局异常疏松,是相似json的bson格局,是以可以存储比拟繁杂的数据类型,也由于他的存储格局也使得它所存储的数据在Nodejs法式利用中使用异常流利。

既然称为NoSQL数据库,Mongo的查询语言异常壮大,其语法有点相似于面向工具的查询语言,险些可以实现相似关系数据库单表查询的绝年夜部门功效,并且还支撑对数据树立索引。

然则,MongoDB也不是全能的,同MySQL等关系型数据库相比,它们在针对分歧的数据类型和事务要求上都存在本身奇特的上风。在数据存储的选择中,保持多样化原则,选择更好更经济的方式,而不是自上而下的同一化。

较常见的,我们可以直接用MongoDB来存储键值对类型的数据,如:验证码、Session等;因为MongoDB的横向扩大才能,也可以用来存储数据范围会在将来变的异常伟大的数据,如:日记、评论等;因为MongoDB存储数据的弱类型,也可以用来存储一些多变json数据,如:与外体系交互时常常变化的JSON报文。而对付一些对数据有繁杂的高事务性要求的操作,如:账户生意业务等就不得当使用MongoDB来存储。

MongoDB官网

拜访MongoDB

Spring Boot中,对如斯受迎接的MongoDB,同样提供了自设置装备摆设功效。

引入依附

Spring Boot中可以经由过程在pom.xml中参加spring-boot-starter-data-mongodb引入对mongodb的拜访支撑依附。它的实现依附spring-data-mongodb。是的,您没有看错,又是spring-data的子项目,之前先容过spring-data-jpa、spring-data-redis,对付mongodb的拜访,spring-data也提供了壮大的支撑,下面就开端着手尝尝吧。

compile "大众org.springframework.boot:spring-boot-starter-data-mongodb:$spring_boot_version"大众

完备 build.gradle

快速开端使用Spring-data-mongodb

若MongoDB的安装置置采纳默认端口,那么在主动设置装备摆设的环境下,我们不必要做任何参数设置装备摆设,就能顿时衔接上当地的MongoDB。下面直接使用spring-data-mongodb来测验考试对mongodb的存取操作。(记得mongod启动您的mongodb)

创立要存储的User实体,包括属性:id、username、age

实现User的数据拜访工具:UserRepository

经由过程上面的例子,我们可以易如反掌的对MongoDB进行拜访,然则实战中,利用服务器与MongoDB通常不会部署于统一台装备之上,如许就无法使用主动化的当地设置装备摆设来进行使用。这个时刻,我们也可以便利的设置装备摆设来完成支撑,只必要在application.properties中参加mongodb服务真个相关设置装备摆设,详细示例如下:

参数设置装备摆设

在 application.yml 文件中增长

spring:
 data:
 mongodb:
 uri: mongodb://192.168.2.53:27017/test

在测验考试此设置装备摆设时,记得在mongo中对test库创立具备读写权限的用户(用户名为name,暗码为pass),分歧版本的用户创立语句分歧,注意查看文档做好预备事情

若使用mongodb 2.x,也可以经由过程如下参数设置装备摆设,该方式不支撑mongodb 3.x。

spring:
 data:
 mongodb:
 host: mongodb:localhost spring.data.mongodb.port=27017

单位测试

import name.quanke.kotlin.chaper11_6_4.entity.User
import name.quanke.kotlin.chaper11_6_4.repository.UserRepository
import org.apache.commons.logging.LogFactory
import org.junit.Test
import org.junit.runner.RunWith
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.test.context.junit4.SpringRunner

/**
 * Created by http://quanke.name on 2018/1/9.
 */
@RunWith(SpringRunner::class)
@SpringBootTest
class ApplicationTests {

 val log = LogFactory.getLog(ApplicationTests::class.java)!!

 @Autowired
 lateinit var userRepository: UserRepository

 @Test
 fun `redis string test"大众`() {
 userRepository.save(User(1L, "大众quanke"大众, 30))
 userRepository.save(User(2L, "大众quanke.name"大众, 40))

 log.info("大众数据总条数:${userRepository.count()}"大众)

 log.info("大众用户名字为 quanke : ${userRepository.findByUsername("大众quanke"大众)}"大众)
 }

}

您可能感兴致的文章:

应用Spring Boot操作MongoDB的办法教程Spring Boot无缝集成MongoDB详解springboot整合mongodbSpring boot中mongodb的使用Spring + Spring Boot + MyBatis + MongoDB的整合教程Spring Boot中使用MongoDB数据库的办法spring boot项目中MongoDB的使用办法

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: