標籤:des style blog http io ar color os 使用
- 關於如何整合spring-data-mongodb到項目中,已經有很多人介紹了,這裡只給出幾個連結。
- GETTING STARTED Accessing Data with MongoDB: http://spring.io/guides/gs/accessing-data-mongodb/
- MongoDB初探(二)----使用spring-data配置mongodb :http://yangjizhong.iteye.com/blog/1206901
- spring與mongodb使用教程之整合的三種方式: http://my.oschina.net/yilian/blog/175525
- 項目背景
- 開始用C#完成項目,採用mongodb資料庫,客戶要求完成一個b\s版本的對應程式。
- b\s版本採用java語言,資料庫底層需要完成對mongodb的CRUD操作。
- 調研了下,最後決定還是用spring data mongodb來完成這個任務,具體的開發配置不做贅述。
- 遇到問題
熟悉C#的人都知道,C#都是用屬性產生對象的特徵,而屬性一般首字母是大寫的,那就意味著如果不作處理,C#這邊的程式如果存到mongodb裡面的話將會是首字母大寫的。同平台,同語言就不會有接下來的問題了。java的bean寫法一般都是getter setter,然後一個私人的欄位,當然欄位首字母要小寫!so 存到mongo裡面就會是首字母小寫。所以問題就來了,已經有庫是大寫,那麼java這邊讀資料就讀不回來了,讀到的都是null。萬般無奈,只好改做大寫,問題解決。
但是第二個問題又來了,在查詢時,條件key是string,omg,大牛們的convert自動轉為小寫了,然後就異常了(找不到屬性)。好吧,我只能再找另一種方案,@Filed,就是他了。
第三個問題,java不建庫直接存mongo,多了一個欄位_class,裡面存的值是這個document的類型,但我真不需要這個東西,如果多了這個東西,我C#的程式又該報錯了。幸好有google,http://www.mkyong.com/mongodb/spring-data-mongodb-remove-_class-column/。
總結:
- spring是個好東西,spring data也是大樹底下好乘涼,so還是多學學spring-data吧。
- 大牛們造輪子的速度,是遠超過我等用輪子的速度,每個架構都有各自的應用情境,盡量選合適的技術。
- 跨語言確實是個問題,最好提前設計好這些問題。
- maven做項目引用管理還是要比nuget好用。
- 沒有lamda的日子只能多敲代碼了,坐等項目升級java 8.。
- mongodb的驅動封裝千千萬,抽空挨個試下吧。
PS:沒有代碼,歡迎交流,有磚輕拍。
mongodb java spring data