Mybatis中关联查询——association分步查询中出错

版权声明:转载转载本博客文章必须声明出处,否则将追究其法律责任。 https://blog.csdn.net/vvcbvv/article/details/84715915

在表关联映射的xml文件中操作

  1. 查询第一个表的数据
 <select id="getUserByIdStep" resultMap="MyUserByStep">
 	select * from user where id=#{id}
 </select>
  1. 设置resultMap
<resultMap type="com.atBing.bean.User" id="MyUserByStep">
 	<id column="id" property="id"/>
 	<result column="name" property="name"/>
 	<result column="passwd" property="passwd"/>
 	<result column="dept_id" property="dept_id"/>
 	<!-- 
		association定义关联对象封闭规则
		select:表明当前属性是调用select中的方法查出的结果
		column:指定将哪一列的值传给这个方法【注意:是有值的那个表的列而不是方法要查询的那个表的列】 	
 	 -->
 	
 	<association property="dept" select="com.atBing.dao.DeptMapper.getDeptById" column="dept_id">
 	</association>
 </resultMap>

在column那里跌了一个大跟头,浪费了一个多小时,难过。
coulumn中的列名我把他写成了select中的方法要查的那个表里的列名,这是一个大错啊,这个列名都没有值,我本来就是要查这个表了还把这个表的列名放到方法里!!!!
经过多次尝试后将colum中的列名改为了我第一步中查询的那个表的列名,因为第一步中我已经查询出来这个列名里面的值了,然后映射这第二步,将这个值传到了select方法中,成功了!!!

  • user表(第一步中查询的表)
    在这里插入图片描述
  • dept表(第二步中select方法中查询的表)
    在这里插入图片描述
  • 第二步中select中调用的查询方法
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/vvcbvv/article/details/84715915
今日推荐