《初学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. 测试成果