《初學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. 測試成果
圖1 測試成果