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的文章還是不錯的,看得出來是部落客自己的經驗積累,我也是從中得到了些知識,不過,說一句,那網站不管是界面還是功能,都不敢恭維啊,文章清單都是亂七八糟的,連最基本的分類都沒有,稍微吐槽下……
接下來的有關代碼的項目,應該都是原創了,敬請期待……