初学spring boot-3:操作MongoDB

《初学spring boot-3:操作MongoDB》要点:
本文介绍了初学spring boot-3:操作MongoDB,希望对您有用。如果有疑问,可以联系我们。

欢迎参与《初学spring boot-3:操作MongoDB》讨论,分享您的想法,编程之家PHP学院为您提供专业教程。

这篇文章,我从怎么安装MongoDB开始,到用spring boot操作MongoDB完整、简单地讲一遍.原来该讲讲其他更简单的,比如不涉及db的restful API操作,或者是mysql.但因为项目中用到mongodb了,所以就先讲mongodb了.

一、mongodb的安装和简单使用

为了便利,我装了mongodb win版.首先到官网(http://www.mongodb.org/downloads )下载合适的安装包.我下载了:mongodb-win32-x86_64-2008plus-ssl-3.4.1-signed.msi

这msi包,不克不及修改安装路径,是安装到:C:\Program Files\MongoDB目录的.

1. 先必要做一些配置:

(1). 创建目录

D:\mongodb\data

D:\mongodb\logs

D:\mongodb\etc

(2). 创建配置文件

etc目录下创建mongodb.conf文件,配置信息为:

dbpath=D:\mongodb\data #数据库路径

logpath=D:\mongodb\logs\mongodb.log #日志输出文件路径

logappend=true #错误日志采纳追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件

journal=true #启用日志文件,默认启用

quiet=true #这个选项可以过滤掉一些无用的日志信息,若必要调试使用请设置为false

port=27017 #端标语 默认为27017

auth=true

2. 启动mongodb

CMD模式进入mongodb的bin目录,执行如下命令:

mongod --config d:\mongodb\etc\mongodb.conf --auth --install --serviceName "MongoDB"

这个命令后,MongoDB会作为一个WIN的service而存在.然后在CMD模式下执行:

net start MongoDB启动mongodb

3. 进入mongodb,并做一些简单的操作

(1) use bzm -- 如果系统没有,则新创建.然后写些数据,如果什么都不操作,这个库会被系统删除

(2) #生成对 bzm 库有读写权限的用户

db.createUser({user:'user',pwd:'123',roles:[{role:'readWrite',db:'test'}]})

(3) 往user表插入数据,如果没有的话就新建user表

db.user.insert({'name':'YOUYU','gender':'female','age':38,'salary':1500})

(4) db.user.find() -- 查询user表中的数据

二、springboot操作MongoDB正式登场

1. pom.xml

添加下面的依赖:

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-mongodb</artifactId>

</dependency>

2. application.properties

添加mongodb的连接:

spring.data.mongodb.uri=mongodb://user:123@localhost:27017/bzm

3. 几个java文件

(1) ReportController.java

@RestController

@RequestMapping("/report")

public class ReportController {

@Autowired

ReportService reportService;

@RequestMapping(method = RequestMethod.GET,value = "/{reportTitle}")

public Report getReportDetails(@PathVariable("reportTitle") String title) {

return reportService.getReportDetails(title);

}

}

(2) Report.java

public class Report {

@Id

private String id;

private String date;

private String content;

private String title;

public Report() {

}

public Report(String date,String title,String content) {

this.date = date;

this.title = title;

this.content = content;

}

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getTitle() {

return title;

}

public void setTitle(String title) {

this.title = title;

}

public String getDate() {

return date;

}

public void setDate(String dateStr) {

this.date = dateStr;

}

public String getContent() {

return content;

}

public void setContent(String content) {

this.content = content;

}

@Override

public String toString() {

return String.format("Report[id=%s,date='%s',content='%s',title='%s']",id,date,content,title);

}

}

(3) ReportRepository.java

public interface ReportRepository extends MongoRepository<Report,String> {

Report findByTitle(String title);

List<Report> findByDate(String date);

}

(4) ReportService.java

@Service

public class ReportService {

@Cacheable(value = "reportcache",keyGenerator = "wiselyKeyGenerator")

public Report getReportDetails(String title) {

return repository.findByTitle(title);

}

}

4. 测试成果

初学spring boot-3:操作MongoDB

图1 测试成果

相关文章

文章浏览阅读552次。com.mongodb.MongoQueryException: Quer...
文章浏览阅读635次,点赞9次,收藏8次。MongoDB 是一种 NoSQ...
文章浏览阅读2.1k次。和。_mongodb 日期类型
文章浏览阅读1.7k次。Scalestack等客户期待使用MongoDB Atla...
文章浏览阅读970次。SpringBoot整合中间件mongodb、ES_sprin...
文章浏览阅读673次。MongoDB 简介_尚医通sql