经过一点时间感觉对mybatis有了更清晰的了解,翻开这篇还是16年去年9月份的文章,突然感觉有点可笑,对于博客的名字(不存数据库的字段),有点荒唐,还多亏评论,才翻开看了一下,整理了一下该博文,其实本质就是多表查询,查询一张表中不存在的字段,但是与之有联系的字段。例如一张表是students,它里面有任课老师id,所以如果我们要知道一个学生的任课老师就必须通过students的任课老师id去查找teachers表,查出name。
BTW:
1)mybatis的resultMap可以省略,里面定义的字段并非要求必须是同一张表的内容
2)resultMap应用范围比resultType更广,resultType就只是一个实体类或dto类的。
3)parameterType是输入类型
总结:多表查询适合mybatis,而单表操作则更多会选择hibernate
<resultMap id="BaseResultMap" type="ciis.zht.model.entity.RiskEvaSuitQuestion">
<id column="AUTO_ID" property="id" jdbcType="BIGINT" />
<id column="SUIT_ID" property="suitId" jdbcType="BIGINT"/>
<result column="QU_ID" property="questionId" jdbcType="INTEGER"/>
<result column="QU_ORDER" property="questionOrder" jdbcType="INTEGER"/>
<!--==============不存表RISK_ASMT_SUIT_QU的字段=================-->
<result column="QU_CONTENT" property="content" jdbcType="VARCHAR"/>
</resultMap>
<!--=====两个表进行取值,将不存数据库的那个字段从另一个表中取出来======-->
<select id="getQueList" resultMap="BaseResultMap" parameterType="long" resultType="ciis.zht.model.entity.RiskEvaSuitQuestion">
SELECT P.AUTO_ID, P.SUIT_ID, P.QU_ID, P.QU_ORDER, F.QU_CONTENT
FROM T_M_RISK_ASMT_SUIT_QU P, T_M_RISK_ASMT_QUESTION F
WHERE P.QU_ID = F.AUTO_ID AND SUIT_ID = #{suitId}
ORDER BY QU_ORDER DESC
</select>