前言
剛剛看到基於 spring-data-mongodb 的增強工具包mongoHelper 發佈了更新,這個工具包簡化 CRUD 操作,並且提供了類 jpa 的數據庫操作。
都知道在傳統關係型數據庫及圍繞它們構建的 orm 在項目開發中有很多難用的痛點,然而隨著 mongodb 這種文檔性數據庫的出現,完美的解決了 sql 數據庫在項目開發中的諸多痛點,在 mongodb4.0 以後支持了事務,已經可以完美的用於工程項目。spring-data-mongodb 已經對 mongodb 的操作做了一部分封裝,但依然不夠用,Query 與 Criteria 的操作依然有比較大的侷限性,而且對於習慣 sql 操作和 sql orm 的人來說,其使用法則依然稍顯彆扭。mongoHelper 對 spring-data-mongodb 又進行了進一步封裝,補充了 mysql 有但 mongodb 沒有的特性,比如字段默認值,使其更易於使用,更接近與關係型數據庫 orm 庫,並添加了很多易於項目管理的功能。
0.2.5更新內容
本次更新內容
- 完善查詢語句的打印,增刪改查都可進行打印
- 完善數據庫導入導出功能,減少內存佔用
- 其他一些代碼寫法上的優化,增加了一些數據庫操作方法
Spring Boot集成mongoHelper
第一步:增加pom引用
<code><dependency>
<groupid>org.springframework.boot/<groupid>
<artifactid>spring-boot-starter-data-mongodb/<artifactid>
/<dependency>/<code>
第二步:注入MongoTemplate
在對應的Dao層注入 MongoTemplate。
第三步:獲取集合
<code>mongoTemplate.getCollection(mongoTemplate.getCollectionName(entityClass)).distinct(key, query.getQueryObject())/<code>
第四步、增加操作(插入)
可以一次性插入一個 對象集合 ,也可以一次只插入一個對象 ;當需要插入的大數據量的時候,首先推薦使用批量插入,提升插入性能。
代碼示例:
<code>List<userinfo> userList = new ArrayList<userinfo>();
userList.add(new UserInfo(1,"1","孫悟空","金箍棒"));
userList.add(new UserInfo(2,"2","豬八戒","耙子"));
userList.add(new UserInfo(3,"0","唐僧","杖"));
mongoTemplate.insert(userList, "userList");\t/<userinfo>/<userinfo>/<code>
備註:
<code>同一個mongo集合中,前後插入的數據 對象類型要一致
實體類需要用註解標識:
@Document(collection = “xxx”):用於實體類上,表明這是一個MongoDB的文檔集合,相當於MySQL的數據表;其中collection表示集合名稱,不寫則默認為實體類名稱
@Id:用於實體類中的成員變量,表示主鍵標識
@Field(“xxx”):用於實體類中的成員變量,表示MongoDB文檔集合中的字段,其值對應集合的字段名稱。/<code>
總結
雖然一些複雜的查詢和更新還需要禽獸編寫構造Query和Update,但是大部分情況足夠滿足的。
閱讀更多 IT實戰聯盟 的文章