亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MongoDB中orm框架的注意事項有哪些

發布時間:2021-06-21 10:41:33 來源:億速云 閱讀:135 作者:小新 欄目:開發技術

小編給大家分享一下MongoDB中orm框架的注意事項有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

首先spring自帶了mongodb的orm,spring data mongodb,但是這個框架非常難用,最令人抓狂的是每個文檔都要帶一個 _class 字段,因為這個是string的,所以占用不少空間,而且去除也比較麻煩。故而使用 zfoo orm 框架

Ⅰ. 簡介

基于MongoDB的orm框架,提供POJO對象和MongoDB數據庫之間的映射

Ⅱ. 注意事項

  • POJO對象的屬性必須提供get和set方法,否則無法映射

  • 不支持泛型

  • 如果不想映射某屬性,直接加上transient關鍵字

  • 目前支持基本數據屬性(byte,short,int,long,float,double,boolean),字符串String,List,Set集合屬性的映射,不支持Map

  • 數據庫主鍵能用整數盡量用整數,因為MongoDB默認的主鍵是一個字符串,比較占空間

  • 數據庫使用自研的orm框架,比如一個實體類UserEntity,映射到數據庫中的集合為user,首字母小寫,去掉Entity

  • 基于 caffeine 的高性能數據緩存

  • 語法校驗,如對沒有加上get和set的字段自動語法提示

Ⅲ. 使用方法

1. IAccessor接口,為數據訪問接口

  • 插入數據到數據庫,會以對象的id()方法的返回值作為主鍵

OrmContext.getAccessor().insert(obj)
  • 刪除數據庫中的數據,會以對象的id()方法的返回值作為查找關鍵字,刪除以這個id()為主鍵的數據

OrmContext.getAccessor().delete(obj);
  • 修改數據庫中的數據

OrmContext.getAccessor().update(obj);

2. IQuery接口,為數據復雜查詢接口

3. 緩存使用方法

例如有下列配置

<orm:config id="config" entity-package="com.zfoo.orm.**.entity">

    <orm:host database="test" user="" password="">
        <orm:address name="server0" url="127.0.0.1:27017"/>
    </orm:host>

    <!-- 緩存策略 -->
    <orm:caches>
        <orm:cache strategy="ten" size="10" expire-millisecond="600000"/>
        <orm:cache strategy="hundred" size="100" expire-millisecond="600000"/>
        <orm:cache strategy="thousand" size="1000" expire-millisecond="600000"/>
        <orm:cache strategy="threeThousand" size="3000" expire-millisecond="600000"/>
        <orm:cache strategy="tenThousand" size="10000" expire-millisecond="600000"/>
    </orm:caches>

    <!-- 持久化策略 -->
    <orm:persisters>
            <orm:persister strategy="cronDefault" type="cron" config="0,30 * * * * ?"/>
            <orm:persister strategy="cron3s" type="cron" config="0/3 * * * * ?"/>
            <orm:persister strategy="cron15s" type="cron" config="0/15 * * * * ?"/>
            <orm:persister strategy="cron30s" type="cron" config="0/30 * * * * ?"/>
            <orm:persister strategy="cron1m" type="cron" config="0 0/30 * * * ?"/>
            <orm:persister strategy="time30s" type="time" config="30000"/>
        </orm:persisters>
</orm:config>

有下列注解

@EntityCaches(cacheStrategy = "tenThousand", persister = @Persister("time30s"))
public class UserEntity implements IEntity<Long> {
}
  • database表示操作哪個數據庫

  • address表示數據庫的地址,支持分片的配置

  • caches中的strategy表示一個緩存的策略,即將數據庫中的數據先讀入Orm中的EntityCaches緩存,如hundred這個策略表示,緩存數據庫中1000條數據,10分鐘過期

  • persisters中的strategy表示一個持久化的策略,如3s這個策略表示,將EntityCaches中的緩存數據每3s寫入到數據庫中一次,即使中途宕機,也只損失3秒的數據

  • EntityCaches這個注解表示將會被Orm管理,使用hundred策略,緩存的持久化策略為3s

Ⅳ. 教程

test下中包含了所有增刪改查的教程,運行之前請先安裝MongoDB

以上是“MongoDB中orm框架的注意事項有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安陆市| 八宿县| 科技| 同江市| 师宗县| 榆林市| 巴塘县| 溆浦县| 朝阳市| 荥经县| 阿鲁科尔沁旗| 庆云县| 于都县| 施甸县| 南溪县| 秦皇岛市| 凯里市| 延寿县| 岫岩| 金堂县| 贵德县| 依安县| 阿巴嘎旗| 澳门| 嘉定区| 合肥市| 格尔木市| 瓮安县| 金华市| 红桥区| 凭祥市| 石景山区| 锦屏县| 房产| 万源市| 崇文区| 南召县| 彰化市| 凤阳县| 西平县| 湘潭县|