1. ホーム
  2. データベース
  3. モンゴルディーブ

MongoDB ormフレームワークの注意点と簡単な使い方

2022-01-19 02:47:16

まず、springにはspring data mongodbというormが付属していますが、このフレームワークは非常に使いづらく、最も厄介なのは各ドキュメントに_classフィールドを持ってこなければならず、これは文字列なのでスペースを取り、また削除もより面倒なことです。代わりに、zfoo orm フレームワークを使用します。

I. はじめに

POJOオブジェクトとMongoDBデータベース間のマッピングを提供するMongoDBベースのormフレームワークです。

II. 注意事項

  • POJO オブジェクトのプロパティは get および set メソッドを提供する必要があり、そうでない場合はマッピングできません。
  • ジェネリックには対応していません
  • 属性をマッピングしない場合は、transient キーワードを追加するだけです。
  • 現在、基本的なデータ属性(byte, short, int, long, float, double, boolean)、String, List, Setコレクション属性のマッピングをサポートしており、Map属性はサポートしていません。
  • データベースの主キーはできるだけ整数を使うようにする。
  • データベースは、ユーザー、小文字のイニシャル、Entityを削除するようにデータベースのコレクションにマッピングされたエンティティクラスUserEntityのような、独自のormフレームワークを使用します。
  • に基づいています。 カフェイン 高性能データキャッシング
  • シンタックスチェック(getやsetのないフィールドの自動シンタックスヒントなど

III. 使用方法

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>

    <! -- Cache policy -->
    <orm:caches>
        <orm:cache strategy="ten" size="10" expire-millisecond="600000"/>
        <orm:cache strategy="hundred" size="100" expire-millisecond="600000"/>
        <orm:cache strategy="threshold" 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>

    <! -- persistence policy -->
    <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キャッシュに読み込まれ、例えば100、データベース内のデータを1000個キャッシュする戦略では、10分失効する
  • persistersのstrategyは永続化戦略を表し、例えば3sとすると、EntityCachesにキャッシュされたデータは3秒ごとにデータベースに書き込まれるので、途中でマシンがダウンしても3秒分のデータしか失われないということです
  • EntityCachesアノテーションは、Ormによって管理され、100のポリシーを使用し、キャッシュの永続化ポリシーは3sであることを意味します。

Ⅳ. チュートリアル

追加、削除、チェックのチュートリアルはすべてテスト版として含まれています。

上記は、MongoDB ormフレームワークの考察と簡単な使用方法の詳細で、MongoDB ormフレームワークの詳細については、スクリプトハウスの他の関連記事に注目してください