一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - spring boot項目中MongoDB的使用方法

spring boot項目中MongoDB的使用方法

2021-01-13 14:39Tomoya Java教程

前段時間分享了關于Spring Boot中使用Redis的文章,除了Redis之后,我們在互聯網產品中還經常會用到另外一款著名的NoSQL數據庫MongoDB。下面這篇文章主要給大家介紹了關于在spring boot項目中MongoDB的使用方法,需要的朋友可以參考下。

前言

大家都知道MySQL數據庫很好用,但數據量到了千萬以上了,想增加字段是非常痛苦的,這個在MongoDB里就不存在,字段想怎么加就怎么加,所以也就有了想在spring-boot里用MongoDB的想法了,Github上spring-projects里有關于使用MongoDB的demo,后面會給出鏈接

依賴

?
1
2
3
4
5
6
7
8
9
10
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
 
//還有一個依賴,官方demo里加的有,這個應該是啟動的時候幫你下載mongodb數據庫的,反正我是沒有成功下載下來過,一直timeout,如果系統上裝的有mongodb了,就不用要這個依賴了
<dependency>
 <groupId>de.flapdoodle.embed</groupId>
 <artifactId>de.flapdoodle.embed.mongo</artifactId>
</dependency>

配置

實體類只用加一個@Id就可以了

?
1
2
3
4
5
6
7
8
9
10
import org.springframework.data.annotation.Id;
 
public class User {
 
 @Id
 private String id;
 private String username;
 
 // getter, setter
}

數據庫配置

?
1
2
3
4
5
6
7
8
9
10
spring:
 freemarker:
 template-loader-path:
 - file:./templates
 data:
 mongodb:
  database: dbname #一般只用配置這一個就可以了,如果數據庫有密碼,還要配置下面幾個配置
  host:
  password:
  uri:

Repository要繼承的是MongoRepository,跟蹤代碼可以發現MongoRepository繼承的就是PagingAndSortingRepository,所以分頁之類的一些簡單的方法也是可以直接拿來用的,非常方便

?
1
2
3
public interface UserRepository extends MongoRepository<User, String> {
 User findByUsername(String username);
}

spring-data怎么用,這里就怎么用

關聯

MongoDB在spring-boot里沒法做關聯,所以用MySQL做關聯的 @ManyToOne 這些注解也就不能用了

經我測試,如果在Blog實體類里引入User對象,在保存Blog的時候,User對象也會保存在Blog里,如下所示

?
1
2
3
4
5
6
7
8
9
10
11
12
{
 "_id" : ObjectId("59cb127b23d8213c8dfdcad9"),
 "_class" : "com.example.module.blog.model.Blog",
 "title" : "hello world",
 "content" : "hello world",
 "inTime" : ISODate("2017-09-27T02:52:43.713+0000"),
 "user" : {
 "_id" : ObjectId("59cb0fec23d8213930c6795a"),
 "username" : "tomoya",
 "inTime" : ISODate("2017-09-27T02:41:48.402+0000")
 }
}

如果修改User的username,只會修改user表里的username,blog表里的user對象里的username是不會變的,所以這里建議關聯只給一個id,在查詢的時候用id去查user,再封裝到一塊比較好

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

參考

https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-data-mongodb

原文鏈接:https://tomoya92.github.io/2017/09/27/spring-boot-mongodb/

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本精品一区二区在线播放 | 国产91 最新 在线 | 倩女还魂在线观看完整版免费 | aaa黄色| 国产精品aaa | 青草热久精品视频在线观看 | 精品久久成人免费第三区 | 男人使劲躁女人小视频 | 亚州精品永久观看视频 | 精品久久久久中文字幕日本 | 特黄特色大片免费高清视频 | 女教师系列三上悠亚在线观看 | 扒开女人下面使劲桶屁股动漫 | 免费网站看v片在线香蕉 | 亚洲 欧美 中文 日韩 视频 | 国产在线观看一区 | 国产高清视频在线 | 短篇最污的乱淫伦小说全集 | 亚洲人成网站在线观看青青 | 亚洲第一区二区快射影院 | 天天综合天天影视色香欲俱全 | 99自拍视频在线观看 | 青草青草视频2免费观看 | 日韩毛片在线影视 | 男男同gayxxx | 国产精品国语自产拍在线观看 | 欧美同性gayvidoes | 欧美干b视频 | 无限资源在线观看完整版免费下载 | 亚洲国产天堂久久精品网 | 欧美三级不卡视频 | 成人在线免费看 | 国产成人亚洲影视在线 | 97超pen个人视频公开视频视 | 亚洲福利在线观看 | 青青在线香蕉国产精品 | 欧美人妖另类性hd | 好大~好爽~再进去一点 | 精品视频一区在线观看 | 日产精品一二三四区国产 | china外卖员gay帮口 |