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