MyBatis の遅延読み込みサンプルの詳細な説明
1.遅延ロードとは
resultMapは高度なマッピングを実装できます(アソシエーションとコレクションを使用して1対1および1対多のマッピングを実現します)、アソシエーションとコレクションには遅延ロード機能があります。
要件:
注文をクエリし、クエリのユーザー情報を関連付ける場合。最初に注文情報を照会すると、ユーザー情報を照会する必要がある場合に、ユーザー情報を確認することができます。オンデマンドでのユーザー情報のクエリは遅延読み込みです。
遅延読み込み: 最初に単一テーブルからクエリを実行し、次に必要に応じて関連テーブルから関連クエリを実行します。これにより、単一テーブルのクエリの方が、複数のテーブルを関連してクエリするよりも高速になるため、データベースのパフォーマンスが大幅に向上します。
2. アソシエーションを使用して遅延読み込みを実装する
2.1 要件
アソシエーションによる順序のクエリとユーザー情報のクエリ
2.2mapper.xml
2 つのマッパー メソッドに対応するステートメントを定義する必要があります。
(1) 注文情報のみをクエリ
SELECT * FROM order
注文をクエリするステートメントで関連付けを使用して、次のステートメント(ユーザー情報を関連付けクエリ)の読み込み(実行)を遅らせます。
<!-- 查询订单关联查询用户 --><select id="findOrdersUserLazyLoading" resultMap="OrdersUserLazyLoadingResultMap">SELECT * FROM orders</select>
(2) 関連付けによるユーザー情報のクエリ
上記でクエリした注文情報の user_id を使用してユーザー情報をクエリします
UserMapper.xml の findUserById を使用します
<select id="findUserById" parameterType="int" resultType="user">select * from user where id=#{value}</select>
必要な場合は、最初に findOrdersUserLazyLoading を実行します。ユーザーにクエリを実行し、fingUserById を実行し、resultMap の定義を通じて遅延読み込みの実行を構成します。
2.3 resultMapの遅延ロード
遅延ロードで実行するステートメントのIDを指定するには、selectを関連付けて使用します。
<!-- 延迟加载的resultMap --><resultMap type="joanna.yan.mybatis.entity.Orders" id="OrdersUserLazyLoadingResultMap"><!-- 1.对订单信息进行映射配置 --><id column="id" property="id"/><result column="user_id" property="userId"/><result column="number" property="number"/><result column="createtime" property="createtime"/><result column="note" property="note"/><!-- 2.实现对用户信息进行延迟加载 --><!-- select:指定延迟加载需要执行的statement的id(是根据user_id查询用户信息的statement) 要使用UserMapper.xml中findUserById完成根据用户id(user_id)用户信息的查询, 如果findUserById不在本mapper中需要前边加namespace。 column:订单信息中关联用户信息查询的列,是user_id 关联查询的sql理解为: SELECT orders.*, (SELECT username FROM USER WHERE orders.user_id = user.id)username, (SELECT sex FROM USER WHERE orders.user_id = user.id)sex FROM orders--><association property="user" javaType="joanna.yan.mybatis.entity.User"select="joanna.yan.mybatis.mapper.UserMapper.findUserById" column="user_id"></association></resultMap>
説明 | 許可される値 |
デフォルト値 |
|
遅延読み込みをグローバルに設定します。 「false」に設定すると、関連するすべてのものが最初にロードされます。 「true」に設定すると、遅延ロードされたオブジェクトは遅延属性で完全にロードされる可能性があります。それ以外の場合、各プロパティはオンデマンドでロードされます。 |
true | false | true | |
//查询订单关联查询用户,用户信息时延迟加载public List<Orders> findOrdersUserLazyLoading() throws Exception; ログイン後にコピー |
<!-- 全局配置参数,需要时再设置 --> <settings> <!-- 打开延迟加载的开关 --> <setting name="lazyLoadingEnabled" value="true"/> <!-- 将积极加载改为消极加载即按需要加载 --> <setting name="aggressiveLazyLoading" value="false"/> </settings> ログイン後にコピー 2. 遅延読み込みに関する 6 つの考え |
提供されていませんby mybatis アソシエーションとコレクションで遅延読み込みを実装するにはどうすればよいですか? 実装方法は以下のとおりです: | 2つのマッパーメソッドを定義します: (1) 注文リストをクエリします |
以上がMyBatis の遅延読み込みサンプルの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









MyBatis 動的 SQL タグの解釈: Set タグの使用法の詳細な説明 MyBatis は、豊富な動的 SQL タグを提供し、データベース操作ステートメントを柔軟に構築できる優れた永続層フレームワークです。このうち、Set タグは、UPDATE ステートメントで SET 句を生成するために使用され、更新操作でよく使用されます。この記事では、MyBatis での Set タグの使用法を詳細に説明し、特定のコード例を通じてその機能を示します。 SetタグとはMyBatiで使用するSetタグです。

MyBatis のキャッシュ メカニズムの分析: 1 次キャッシュと 2 次キャッシュの違いと応用 MyBatis フレームワークでは、キャッシュはデータベース操作のパフォーマンスを効果的に向上させることができる非常に重要な機能です。そのうち、一次キャッシュと二次キャッシュは、MyBatis でよく使用される 2 つのキャッシュ メカニズムです。この記事では、一次キャッシュと二次キャッシュの違いと用途を詳細に分析し、具体的なコード例を示して説明します。 1. レベル 1 キャッシュ レベル 1 キャッシュはローカル キャッシュとも呼ばれ、デフォルトで有効になっており、オフにすることはできません。 1次キャッシュはSqlSesです

C言語学習の魅力:プログラマーの可能性を引き出す テクノロジーの発展に伴い、コンピュータプログラミングは大きな注目を集めている分野です。数あるプログラミング言語の中でもC言語は常にプログラマーに愛されています。そのシンプルさ、効率性、幅広い用途により、C 言語の学習は、多くの人にとってプログラミングの分野に入る最初のステップとなっています。この記事では、C言語を学ぶ魅力と、C言語を学ぶことでプログラマーの可能性を引き出す方法について解説します。 C言語学習の魅力は、まずその簡単さにあります。他のプログラミング言語と比較すると、C言語は

Word でテキスト コンテンツを編集するときに、数式記号の入力が必要になる場合があります。 Word でルート番号を入力する方法を知らない人もいるので、Xiaomian は私に、Word でルート番号を入力する方法のチュートリアルを友達と共有するように頼みました。それが私の友達に役立つことを願っています。まず、コンピュータで Word ソフトウェアを開き、編集するファイルを開き、ルート記号を挿入する必要がある場所にカーソルを移動します。下の図の例を参照してください。 2. [挿入]を選択し、記号内の[数式]を選択します。下の図の赤丸で示すように: 3. 次に、下の[新しい数式を挿入]を選択します。以下の図の赤丸で示すように: 4. [根号式]を選択し、適切な根号を選択します。下の図の赤丸で示したように、

タイトル: Go言語のmain関数をゼロから学ぶ Go言語はシンプルで効率的なプログラミング言語として開発者に好まれています。 Go 言語では、main 関数はエントリ関数であり、すべての Go プログラムにはプログラムのエントリ ポイントとして main 関数が含まれている必要があります。この記事ではGo言語のmain関数をゼロから学ぶ方法と具体的なコード例を紹介します。 1. まず、Go 言語開発環境をインストールする必要があります。公式ウェブサイト (https://golang.org) にアクセスできます。

ミストロック王国でプレイするとき、プレイヤーはさまざまな材料を集めて建物を建てることができます。多くのプレイヤーは、野生で建物を建てるべきかどうか知りたいと考えています。ミストロック王国では、建物は野生で建てることはできません。祭壇の範囲内になければなりません。 。ミストロック王国の自然の中に建物を建てることはできますか? 答え: いいえ。 1. ミストロックキングダムの荒野には建物を建てることができません。 2. 建物は祭壇の範囲内に建てなければなりません。 3. プレイヤーは自分で精霊の火の祭壇を設置できますが、範囲を離れると建物を建設できなくなります。 4. 山に直接穴を掘って家にすることもできるので、建築資材を消費する必要がありません。 5. プレイヤー自身が建てた建物には快適性のメカニズムがあり、内装が良いほど快適性が高くなります。 6. 高い快適性により、プレイヤーに属性ボーナスがもたらされます。

MyBatis は、便利な SQL マッピングおよびデータベース操作機能を提供する人気の永続層フレームワークで、開発者がデータベースをより効率的に操作できるようにします。実際の開発プロセスでは、SQL クエリのデバッグと最適化を改善するために、MyBatis によって実行された SQL ステートメントをリアルタイムでコンソールに出力する必要がある場合があります。この記事では、MyBatis のコンソール上で SQL のリアルタイム出力を実現する方法と具体的なコード例を紹介します。まず、My を追加する必要があります

オリジナル著者: Minty、暗号化 KOL オリジナル編集者: Shenchao TechFlow 使い方を知っていれば、Dune はオールインワンのアルファ ツールです。これらの 20 の Dune ダッシュボードを使用して、研究を次のレベルに引き上げましょう。 1. TopHolder 分析 @dcfpascal が開発したこのシンプルなツールは、ホルダーの月間アクティビティ、ユニークホルダー数、ウォレット損益率などの指標に基づいてトークンを分析できます。リンクを参照: https://dune.com/dcfpascal/token-holders2. トークンの概要メトリクス @andrewhong5297 がこのダッシュボードを作成し、ユーザーのアクションを分析してトークンを評価する方法を提供します。
