天天看點

MongoDB的使用學習之(五)Spring內建MongoDB

1、介紹

  之前在很多地方一直見到這個spring data 神奇的東西,不知道是啥東東,終于,今天來簡單的探個究竟,底下是我從網上整理來的……

  首先,解釋下為啥要使用spring來內建mongodb:因為mongodb的java驅動程式使用起來較為繁瑣,特别是處理關聯關系多、層次深的情況時。需要書寫大量的構造dbobject的代碼。遇到這樣的問題第一個肯定想到“萬金油”spring。spring

data對很多nosql産品都有支援,比如redis、hbase、mongodb、neo4j等。如果工程已經使用了spring,引入spring

data那應該是理所當然咯。

  spring data簡介:

  spring data 作為springsource的其中一個父項目, 旨在統一和簡化對各類型持久化存儲,

而不拘泥于是關系型資料庫還是nosql 資料存儲。無論是哪種持久化存儲, 資料通路對象(或稱作為dao,即 data access

objects)通常都會提供對單一域對象的crud (建立、讀取、更新、删除)操作、查詢方法、排序和分頁方法等。 spring

data則提供了基于這些層面的統一接口(crudrepository,pagingandsortingrepository)以及對持久化存儲的實作。比如

jdbctemplate,mongotemplate==;spring data

項目的目的是為了簡化建構基于 spring 架構應用的資料通路計數,包括非關系資料庫、map-reduce 架構、

雲資料服務等等;另外也包含對關系資料庫的通路支援。

  有木有使用spring

data的對比,場景:對mongodb進行模糊比對的查詢:

純java,沒有spring data:

basicdbobject cond=new basicdbobject(); 

  pattern pattern=pattern.compile("^.*"+keywords+".*$");    

      cond.put("name", pattern);

使用spring data

  list<user> users = mongotemplate.find(new query(new criteria("name").regex(".*?"+"張"+".*")).limit(9), user.class);

明顯可以看出使用spring data敲的代碼比較容易了解、工整

  現在有很多人spring見的膩了也開始煩了。是的,spring野心很大,他幾乎想要壟斷java方面的任何事情。沒辦法我從使用spring後就離不開他,以至于其他架構基本上都不用學。我學了spring的很多,諸如:spring

security/spring integration/spring

batch等。。。不發明輪子的他已經提供了程式設計裡的很多場景,我利用那些場景解決了工作中的很多問題,也使我的工作變得很高效。進而我又時間學到它更多。spring

data mongo封裝了mongodb java

driver,提供了和springjdbc/template一緻程式設計風格的mongotemplate。

見:

2、spring data mongodb的crud

  項目的源碼來自于,底下有項目的源碼連結,下載下傳導入即可使用,使用的是maven建立工程項目,感謝此部落客的無私奉獻,裡面的有關mongodb的文章還是不錯的,看得出來是部落客自己的經驗積累,我也是從中得到了些知識,不過,說一句,那網站不管是界面還是功能,都不敢恭維啊,文章清單都是亂七八糟的,連最基本的分類都沒有,稍微吐槽下……

  接下來的有關代碼的項目,應該都是原創了,敬請期待……