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
ローディングの遅延は何ですか?
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 で られていますので、 つの が すると、すべての のキャッシュデータが になります.このような を するには、 に じて でデータに してキャッシュが です.