最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring boot項目中MongoDB的使用方法

 更新時間:2017年09月30日 09:06:31   作者:Tomoya  
前段時間分享了關(guān)于Spring Boot中使用Redis的文章,除了Redis之后,我們在互聯(lián)網(wǎng)產(chǎn)品中還經(jīng)常會用到另外一款著名的NoSQL數(shù)據(jù)庫MongoDB。下面這篇文章主要給大家介紹了關(guān)于在spring boot項目中MongoDB的使用方法,需要的朋友可以參考下。

前言

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

依賴

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

//還有一個依賴,官方demo里加的有,這個應(yīng)該是啟動的時候幫你下載mongodb數(shù)據(jù)庫的,反正我是沒有成功下載下來過,一直timeout,如果系統(tǒng)上裝的有mongodb了,就不用要這個依賴了
<dependency>
 <groupId>de.flapdoodle.embed</groupId>
 <artifactId>de.flapdoodle.embed.mongo</artifactId>
</dependency>

配置

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

import org.springframework.data.annotation.Id;

public class User {

 @Id
 private String id;
 private String username;

 // getter, setter
}

數(shù)據(jù)庫配置

spring:
 freemarker:
 template-loader-path:
 - file:./templates
 data:
 mongodb:
  database: dbname #一般只用配置這一個就可以了,如果數(shù)據(jù)庫有密碼,還要配置下面幾個配置
  host: 
  password:
  uri:

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

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

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

關(guān)聯(lián)

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

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

{ 
 "_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是不會變的,所以這里建議關(guān)聯(lián)只給一個id,在查詢的時候用id去查user,再封裝到一塊比較好

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

參考

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

相關(guān)文章

  • 詳解Java中$符的各種使用場景

    詳解Java中$符的各種使用場景

    在Java編程中,我們會經(jīng)??吹?符的身影,比如經(jīng)常在配置文件中看到$符號作為變量占位符,用于在運行時動態(tài)地獲取變量值。本文將詳細介紹$符號在Java編程中的各種應(yīng)用場景,以幫助您更好地理解和運用這個符號,感興趣的小伙伴可以收藏一下
    2023-04-04
  • java代理模式與動態(tài)代理模式詳解

    java代理模式與動態(tài)代理模式詳解

    代理就是一個人或者一個機構(gòu)代表另一個人或者另一個機構(gòu)采取行動。在一些情況下,一個客戶不想或者不能夠直接引用一個對象,而代理對象可以在客戶端和目標對象之前起到中介的作用
    2014-02-02
  • SpringBoot 如何編寫配置文件

    SpringBoot 如何編寫配置文件

    這篇文章主要介紹了SpringBoot 編寫配置文件的兩種方法,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2020-11-11
  • Java中BigDecimal的加減乘除、比較大小與使用注意事項

    Java中BigDecimal的加減乘除、比較大小與使用注意事項

    對于不需要任何準確計算精度的數(shù)字可以直接使用float或double,但是如果需要精確計算的結(jié)果,則必須使用BigDecimal類,而且使用BigDecimal類也可以進行大數(shù)的操作,下面這篇文章給大家介紹了Java中BigDecimal的加減乘除、比較大小與使用注意事項,需要的朋友可以參考下。
    2017-11-11
  • SpringBoot集成Redis并實現(xiàn)主從架構(gòu)的實踐

    SpringBoot集成Redis并實現(xiàn)主從架構(gòu)的實踐

    本文主要和大家分享一下在springboot中如何集成redis,并實現(xiàn)主從架構(gòu),進行數(shù)據(jù)的簡單存儲,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 學(xué)生信息管理系統(tǒng)java版

    學(xué)生信息管理系統(tǒng)java版

    這篇文章主要為大家詳細介紹了java學(xué)生信息管理系統(tǒng)源代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • JavaWeb ServletConfig作用及原理分析講解

    JavaWeb ServletConfig作用及原理分析講解

    ServletConfig對象,叫Servlet配置對象。主要用于加載配置文件的初始化參數(shù)。我們知道一個Web應(yīng)用里面可以有多個servlet,如果現(xiàn)在有一份數(shù)據(jù)需要傳給所有的servlet使用,那么我們就可以使用ServletContext對象了
    2022-10-10
  • SpringBoot項目中定時器的實現(xiàn)示例

    SpringBoot項目中定時器的實現(xiàn)示例

    在Spring?Boot項目中,你可以使用Spring框架提供的@Scheduled注解來編寫定時任務(wù),本文就來介紹一下SpringBoot項目中定時器的實現(xiàn),感興趣的可以了解一下
    2023-11-11
  • 淺談Java中Map和Set之間的關(guān)系(及Map.Entry)

    淺談Java中Map和Set之間的關(guān)系(及Map.Entry)

    這篇文章主要介紹了淺談Java中Map和Set之間的關(guān)系(及Map.Entry),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • java過濾特殊字符操作(xss攻擊解決方案)

    java過濾特殊字符操作(xss攻擊解決方案)

    這篇文章主要介紹了java過濾特殊字符操作(xss攻擊解決方案),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評論

玉山县| 土默特左旗| 汽车| 巴南区| 德兴市| 屏南县| 洞口县| 正宁县| 哈尔滨市| 南昌市| 商都县| 三都| 望谟县| 平顶山市| 新丰县| 密山市| 怀仁县| 云南省| 青浦区| 盐山县| 堆龙德庆县| 沾益县| 贵溪市| 故城县| 揭西县| 保靖县| 咸丰县| 鄂托克旗| 青龙| 嵩明县| 阿拉善右旗| 蓝田县| 凌海市| 祁阳县| 林甸县| 曲阜市| 杨浦区| 正阳县| 翁牛特旗| 山东省| 信宜市|