この記事では主にmybatisチュートリアルの遅延読み込みに関する詳しい説明を紹介しています。遅延ロードの意味や使い方実装について詳しく紹介していますので、興味のある方は
遅延ロード
1 遅延ロードを使用する意味
を行うために、データクエリを実行します。データベース クエリのパフォーマンスを向上させるには、単一テーブル クエリの使用が複数テーブル関連のクエリよりも高速であるため、単一テーブル クエリを使用してみてください。
単一のテーブルをクエリすることでニーズを満たすことができる場合は、最初に単一のテーブルをクエリし、関連する情報が必要な場合は、再度クエリを実行します。
mybatis の resultMap は遅延ロード機能を提供し、遅延ロードは resultMap を通じて設定されます。
2 遅延読み込みをサポートするように mybatis を構成する
SqlMapConfig でグローバル パラメーターを構成する
3.1 実装のアイデア
クエリの順序とユーザー情報、一対一の問い合わせ。
最初は注文情報のみをクエリします
ユーザーが必要な場合は、Orders クラスの getUser() メソッドを呼び出して遅延読み込みを実行し、データベースに SQL を発行します。
<!-- 全局配置参数 --> <settings> <!-- 延迟加载总开关 --> <setting name="lazyLoadingEnabled" value="true" /> <!-- 设置按需加载 --> <setting name="aggressiveLazyLoading" value="false" /> </settings>
3.3 resultMap
<!-- 一对一查询延迟加载 开始只查询订单,对用户信息进行延迟加载 --> <select id="findOrderUserListLazyLoading" resultMap="orderCustomLazyLoading"> SELECT orders.* FROM orders </select>
3.4 mapper.java
<!-- 一对一查询延迟加载 的配置 --> <resultMap type="orders" id="orderCustomLazyLoading"> <!-- 完成了订单信息的映射配置 --> <!-- id:订单关联用户查询的唯 一 标识 --> <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" /> <!-- 配置用户信息的延迟加载 select:延迟加载执行的sql所在的statement的id,如果不在同一个namespace需要加namespace sql:根据用户id查询用户信息 column:关联查询的列 property:将关联查询的用户信息设置到Orders的哪个属性 --> <association property="user" select="com.sihai.mybatis.mapper.UserMapper.findUserById" column="user_id"></association> </resultMap>
3.5 テストコード
//一对一查询,延迟加载 public List<Orders> findOrderUserListLazyLoading() throws Exception;
4 概要resultType、resultMap、および遅延ロードの使用シナリオ
4.1 遅延ロード:
データベース クエリのパフォーマンスを向上させるために、単一のテーブルのみをクエリすることで遅延ロードを実装する方法は数多くあります。関連情報をロードしてクエリするために使用されます。
mybatis はサービス層の遅延読み込み機能を提供します。4.2 resultType:
用途: ページに関連するすべてのクエリ情報が表示されている場合、resultType を直接使用して各レコードを pojo にマッピングし、リスト (リスト内の pojo) をトラバースすることが一般的です。フロントエンドページ。
4.3 resultMap:
関連付けとコレクションを使用して、1 対 1 および 1 対多の高度なマッピングを完了します。
4.4 関連付け:
機能: 関連付けクエリ情報を pojo クラスにマップします。
用途: 関連情報を簡単に取得するために、注文や関連ユーザー情報のクエリなど、関連付けを使用して関連注文を POJO にマッピングできます。
機能: 関連するクエリ情報をリスト コレクションにマップします。
用途: 関連情報を簡単に取得するには、コレクションを使用して関連情報をリスト コレクションにマップします。たとえば、ユーザー権限スコープのモジュールと関数をクエリするには、コレクションを使用してモジュールと関数のリストをマップします。リスト。
【関連する推奨事項】
1.
特別な推奨事項:
「php Programmer Toolbox」V0.1 バージョンのダウンロード
2.
以上がmybatis の遅延読み込みのソリューションの紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。