mybatis一、二級キャッシュ詳細

4142 ワード

ブログを転載する:http://www.cnblogs.com/QQParadise/articles/5109633.html
ローディングの遅延は何ですか? 
        resultMapにおけるassicationおよびcollectionタグは、遅延負荷の機能を有する.
        ディレイローディングとは、関連クエリにおいて、遅延負荷を利用して、先にマスター情報をロードするという意味です.関連情報を使用する場合は、関連情報をロードします.
遅延ロードの設定
        Sql MapConfig.xmlファイルにラベルを設定してロードを遅延する必要があります.
        lazy LoadingEnbaled、aggressvieLazy Loading
項目を設定
説明
許容値
標準値
lazy LoadingEnbaled
全体設定が怠惰です.「false」に設定すると、関連付けられているすべてのものが初期化されてロードされます.
true false
false
aggressvieLazy Loading
「true」に設定されている場合、怠惰なロードの対象は、怠惰な属性によって全部ロードされている可能性があります.属性ごとに必要に応じて読み込みます.
true false
true
 
1
2
3
4
5
6
7
8
9
10    <settings>                <setting  name="lazyLoadingEnabled"  value="true"/>                <setting  name="aggressiveLazyLoading"  value="false"/>                          <setting  name="cacheEnabled"  value="true"/>     settings>  
 
 
 
キャッシュとは ですか?
    
Mybatisの キャッシュとはSql Sessionのことです. キャッシュの はSql Sessionです.Mybatisはデフォルトで キャッシュを きます.
じSql Sessionでは、 じクエリSQLを し、 めてデータベースを し、キャッシュに き みます. は キャッシュから ります.SQLを すると、2 のクエリの に が し、Sql Sessionのキャッシュが になります.
 
Mybatisの キャッシュとは、mapperマッピングファイルのことです. キャッシュの は、 じnamespaceのmapperマッピングファイルの であり、 のSql Sessionが する.Mybatisは で キャッシュを する があります.
じnamespaceの のmapperファイルで じクエリSQLを して、 めてデータベースを べてキャッシュに きます. は キャッシュから ります.SQLを する 、2 のクエリの に が したら、2 のキャッシュは です.
 
キャッシュの
キャッシュエリアは、Sql Sessionの によって されます.
 
の は にキャッシュに って します.もし つけられなかったら、データベースで べて、 をキャッシュに きます.Mybatisの キャッシュはHashMapを しています.keyはhashcode+statementId+sql です.Valueは した セットにマッピングされたjavaオブジェクトです.
 
Sql Sessionはinsert、udate、deleteなどの commtを すると、このSQLSessionキャッシュをクリアします.
 
 
 
 
 
キャッシュの
キャッシュはmapperレベルです.Mybatisはデフォルトでは キャッシュを いていません.
 
めてmapperの のSQLを び してユーザ を べます. した は、そのmapperに する キャッシュエリアに されます.
2 は じnamespaceの のmapperマッピングファイルの じSQLを び してユーザ を い わせる. する キャッシュに って を ります.
じnamespaceのmapperマッピングファイルの をSQLに し、comit を した .このとき、namespaceの の キャッシュが になります.
 
セカンドキャッシュを く
1、  コアプロファイルSql MapConfig.xmlには、 の を します.
cacheEnbledは true
 
 
2、マッピングファイルには、 の を して、 キャッシュをオープンします.
 
を する
    
セカンダリキャッシュのデータは ずしもメモリに されているとは らないので、 が であるため、キャッシュの に しては、 けが である.
このクラスが であれば、 も されます.
キャッシュを にする
このstatementではuserCache=falseを して、 のselect の2 キャッシュを にしてもいいです.つまり、クエリーは データベースで べられます.デフォルトではtrueです.つまり、statementは2 キャッシュを います.
キャッシュを
シーンと
  • アプリケーションシーン
  • くのクエリ にアクセスし、ユーザーがクエリ に してリアルタイム を しない 、mybatis 2 キャッシュ を してデータベースアクセス を し、アクセス を させることができます.ビジネスシーンは、 えば、 がかかります.
    を することにより、mybatisにより ごとに にキャッシュが になり、データの に じてキャッシュリフレッシュ flush Intervalが され、 えば30 、60 、24 などが に じて まります.
  • mybatis 2 キャッシュは、 かい のデータレベルのキャッシュに して、よくないことを しました. えば、 をキャッシュします. の アクセス が きいので、 の を するようにユーザーに します.この 、mybatisの キャッシュを えば、 つの が した に、 の の を せずにこの のキャッシュ だけを することができなくなります.mybaitsの キャッシュエリアはmapper で られていますので、 つの が すると、すべての のキャッシュデータが になります.このような を するには、 に じて でデータに してキャッシュが です.