ホームページ >Java >&#&チュートリアル >mybatis の 1 次キャッシュと 2 次キャッシュの違いは何ですか?
mybatis の 1 次キャッシュと 2 次キャッシュの違い: 1. Mybatis の 1 次キャッシュは SQLSession を参照します。1 次キャッシュのスコープは SQlSession です。Mabits はデフォルトでは 1 レベル キャッシュ、2. Mybatis 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 次キャッシュから取得されます。
#関連する推奨事項: Java 入門チュートリアル
以上がmybatis の 1 次キャッシュと 2 次キャッシュの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。