ホームページ  >  記事  >  Java  >  mybatis の 1 次キャッシュと 2 次キャッシュの違いは何ですか?

mybatis の 1 次キャッシュと 2 次キャッシュの違いは何ですか?

coldplay.xixi
coldplay.xixiオリジナル
2021-01-22 10:37:3548050ブラウズ

mybatis の 1 次キャッシュと 2 次キャッシュの違い: 1. Mybatis の 1 次キャッシュは SQLSession を参照します。1 次キャッシュのスコープは SQlSession です。Mabits はデフォルトでは 1 レベル キャッシュ、2. Mybatis 2 レベル キャッシュはデフォルトでは有効になっていません。

mybatis の 1 次キャッシュと 2 次キャッシュの違いは何ですか?

この記事の動作環境: Windows 7 システム、MyBatis バージョン 3.5.6、Dell G3 コンピューター。

mybatis の 1 次キャッシュと 2 次キャッシュの違い:

1) Mybatis の 1 次キャッシュは SQLSession を指します。 1 次キャッシュのスコープは SQlSession であり、Mabits はデフォルトで 1 次キャッシュを有効にします。同じ SqlSession 内で同じ SQL クエリを実行する場合、1 回目はデータベースにクエリを実行してキャッシュに書き込み、2 回目はキャッシュから直接フェッチします。 SQL が実行され、2 つのクエリ間で追加、削除、変更が発生すると、SQLSession キャッシュがクリアされます。

各クエリはまずキャッシュ内を検索します。見つからない場合はデータベースにクエリを実行し、結果をキャッシュに書き込みます。 Mybatis の内部キャッシュは HashMap を使用し、キーは hashcode statementId SQL ステートメントです。値は、クエリ結果セットにマップされた Java オブジェクトです。 SqlSession が挿入、更新、削除、その他の操作のコミットを実行すると、SQLSession キャッシュがクリアされます。

2) 2 次キャッシュ 2 次キャッシュはマッパー レベルにあり、Mybatis はデフォルトでは 2 次キャッシュを有効にしません。ユーザー情報をクエリするためにマッパーの下の SQL が初めて呼び出されるとき、クエリされた情報はマッパーに対応する 2 次キャッシュ領域に格納されます。ネームスペースの下のマッパー マッピング ファイルへの 2 回目の呼び出しでは、同じ SQL を使用してユーザー情報がクエリされ、結果は対応する 2 次キャッシュから取得されます。

mybatis の 1 次キャッシュと 2 次キャッシュの違いは何ですか?

#関連する推奨事項: Java 入門チュートリアル

以上がmybatis の 1 次キャッシュと 2 次キャッシュの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。