《初學(xué)spring boot-3:操作MongoDB》要點(diǎn):
本文介紹了初學(xué)spring boot-3:操作MongoDB,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
相關(guān)主題:非關(guān)系型數(shù)據(jù)庫(kù)
歡迎參與《初學(xué)spring boot-3:操作MongoDB》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
這篇文章,我從怎么安裝MongoDB開始,到用spring boot操作MongoDB完整、簡(jiǎn)單地講一遍.原來(lái)該講講其他更簡(jiǎn)單的,比如不涉及db的restful API操作,或者是mysql.但因?yàn)轫?xiàng)目中用到mongodb了,所以就先講mongodb了.
一、mongodb的安裝和簡(jiǎn)單使用
為了便利,我裝了mongodb win版.首先到官網(wǎng)(http://www.mongodb.org/downloads )下載合適的安裝包.我下載了:mongodb-win32-x86_64-2008plus-ssl-3.4.1-signed.msi
這msi包,不克不及修改安裝路徑,是安裝到:C:\Program Files\MongoDB目錄的.
1. 先必要做一些配置:
(1). 創(chuàng)建目錄
D:\mongodb\data
D:\mongodb\logs
D:\mongodb\etc
(2). 創(chuàng)建配置文件
etc目錄下創(chuàng)建mongodb.conf文件,配置信息為:
dbpath=D:\mongodb\data #數(shù)據(jù)庫(kù)路徑
logpath=D:\mongodb\logs\mongodb.log #日志輸出文件路徑
logappend=true #錯(cuò)誤日志采納追加模式,配置這個(gè)選項(xiàng)后mongodb的日志會(huì)追加到現(xiàn)有的日志文件,而不是從新創(chuàng)建一個(gè)新文件
journal=true #啟用日志文件,默認(rèn)啟用
quiet=true #這個(gè)選項(xiàng)可以過濾掉一些無(wú)用的日志信息,若必要調(diào)試使用請(qǐng)?jiān)O(shè)置為false
port=27017 #端標(biāo)語(yǔ) 默認(rèn)為27017
auth=true
2. 啟動(dòng)mongodb
CMD模式進(jìn)入mongodb的bin目錄,執(zhí)行如下命令:
mongod --config d:\mongodb\etc\mongodb.conf --auth --install --serviceName "MongoDB"
這個(gè)命令后,MongoDB會(huì)作為一個(gè)WIN的service而存在.然后在CMD模式下執(zhí)行:
net start MongoDB啟動(dòng)mongodb
3. 進(jìn)入mongodb,并做一些簡(jiǎn)單的操作
(1) use bzm -- 如果系統(tǒng)沒有,則新創(chuàng)建.然后寫些數(shù)據(jù),如果什么都不操作,這個(gè)庫(kù)會(huì)被系統(tǒng)刪除
(2) #生成對(duì) bzm 庫(kù)有讀寫權(quán)限的用戶
db.createUser({user:'user',pwd:'123',roles:[{role:'readWrite',db:'test'}]})
(3) 往user表插入數(shù)據(jù),如果沒有的話就新建user表
db.user.insert({'name':'YOUYU','gender':'female','age':38,'salary':1500})
(4) db.user.find() -- 查詢user表中的數(shù)據(jù)
二、springboot操作MongoDB正式登場(chǎng)
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. 幾個(gè)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. 測(cè)試成果
圖1 測(cè)試成果
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/10178.html