mybatis的延遲加載

輸入圖片說明

輸入圖片說明

OrderMapper.xml文件的配置:sql

<!-- 2 延遲加載resultMap的配置 -->
	<resultMap type="com.shi.pojo.Order" id="selectOrderLazyLodingFindUser">
		<!-- 對訂單信息進行映射配置 -->
		<id column="id" property="id"/>
		<result column="user_id" property="user_id"/>
		<result column="number" property="number"/>
		<result column="createtime" property="createtime"/>
		<result column="note" property="note"/>
		
		<!-- 3  實現用戶信息的延遲加載 
			property:指定哪一個屬性須要延遲加載
			select:指定延遲加載須要執行的statement的id
			(使用別的映射文件中的statement的id須要指定namespace)
			column:是訂單信息中關聯查詢用戶信息的列(就是上面的user_id)
		-->
		<association property="user" select="com.shi.mapper.UserMapper.selectUserByIdOrder" column="user_id">
		</association>
	</resultMap>
	
	<!-- 1 先去查詢訂單表的信息 -->
	<select id="selectOrderLazyLoding" resultMap="selectOrderLazyLodingFindUser">
		select * from orders
	</select>

UserMapper.xml文件的配置:app

<mapper namespace="com.shi.mapper.UserMapper">
	<!-- 經過id查詢用戶的信息 -->
	<select id="selectUserByIdOrder" parameterType="int" resultType="com.shi.pojo.User">
		select * from user where id=#{user_id}
	</select>
</mapper>

注意:還要在sqlMapperConfig.xml文件中配置;spa

<!-- 配置延遲加載 -->
	<settings>
		<!-- 你們延遲加載的開關 -->
		<setting name="lazyLoadingEnabled" value="true"/>
		<!-- 取消積極加載 ,改成消極加載 ,即  按需加載-->
		<setting name="aggressiveLazyLoading" value="false"/>
	</settings>

思考:code

輸入圖片說明

相關文章
相關標籤/搜索