mybatis一对多关联查询要怎么实现?一般有哪些方式实现?

TheDisguiser 2020-06-13 10:14:37 java常见问答 8056

Mybatis相信大家一定都知道吧,这是目前最风骚的数据库交互软件之一,那问题来了,小伙伴们知道mybatis一对多关联查询要怎么实现吗?它一般又有哪些方式实现呢?下面就由小编为你说道说道。

例:实现学生表与班级表的关联查询,在学生管理信息中一定要有所在班级的名称。

一、将对应学生表的pojo类编写为全班级表中的字段,这种方法一般适用于连接表字段较少状态。

mybatis一对多关联查询

这里我们的SQL语句直接在mapper接口里编写即可

mybatis一对多关联查询

二、resultmap手动关联映射

在student中pojo类编写一个Clazz类型的字段,用来封装班级信息

mybatis一对多关联查询

然后使用xml方式编写sql语句,记住,在编写sql语句前我们一定要在配置文件里声明xml的路径,以及为了方便,要为pojo类起一个别名。

mybatis一对多关联查询

<resultMap id="smap" type="student">
        <id property="id" column="sid"/>
        <result property="name" column="name"/>
        <result property="phone" column="phone"/>
        <association property="clazz" javaType="clazz">
            <id property="id" column="cid"/>
            <result property="title" column="title"/>
        </association>
    </resultMap> <
select id = "selectAll"
resultMap = "smap" >
    select s.id sid, s.name, s.phone, c.id cid, c.title title
from student s left join clazz c on s.clazz_id = c.id <
    /select>

注:

associattion 属性表示关系,代表一个学生对象中包含有另一个班级对象

javaType 属性表示当前对象

三、使用resultType自动映射配合别名

mybatis一对多关联查询

注明:在别名中会包含特殊符号,所以我们需要加上引号

结果:

mybatis一对多关联查询

这些就是关于mybatis一对多关联查询的所有内容了,小伙伴们如果有需要了解更多mybatis常见问题,就请关注我们网站来了解更多吧。

推荐阅读:

mybatis缓存的工作原理是什么?mybatis缓存机制

mybatis缓存配置有什么作用?主要有哪些?

mybatis配置文件总结,解决文件配置困惑