MyBatis 延迟加载
在sqlMapConfig中进行设置
<configuration> <settings> <!--延迟加载的总开关--> <setting name="lazyLoadingEnabled" value="true"/> <!--设置为false才是启动延迟加载--> <setting name="aggresiveLazyLoading" value="false"/> </settings> ...... </configuration>
在mapper.xml中使用两次查询的方式;
<!-- 2.查询两次select * from class where c_id = 1 ; SELECT * from teacher where t_id = 1 --> <select id="getClass2" resultMap="getClass2Map"> select * from class where c_id =#{id} </select> <select id="getTeacher" parameterType="int" resultType="com.stone.bean.Teacher"> select t_id id,t_name name from teacher where t_id=#{id} </select> <select id="getStudents" parameterType="int" resultType="com.stone.bean.Student"> select S_id id,s_name name from student where c_id=#{id} </select> <resultMap type="com.stone.bean.ClassT" id="getClass2Map"> <id property="id" column="c_id" /> <result property="name" column="c_name" /> <association property="teacher" column="t_id" select="getTeacher"> </association> <collection property="list" column="c_id" select="getStudents"></collection> </resultMap>