mybatis多表查询

来源:互联网 发布:数据信号避雷器 编辑:程序博客网 时间:2024/06/05 13:36

经过一点时间感觉对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>

                                             
0 0
原创粉丝点击