Mybatis双表联查

本文介绍了如何在Mybatis中进行双表联查。通过字段classifyID关联两张表,只需要在XML映射文件中配置相关SQL语句,并定义resultMap,就能在查询books表时自动获取classify表的数据。在mapper接口中调用相应方法即可获得完整的查询结果。

数据库
两张表通过字段classifyID进行关联
在这里插入图片描述
在这里插入图片描述
实体类
(请自行添加get、set方法)
books

public class Books {
    private int bookID;
    private String bookName;
    private int bookCounts;
    private  String detail;
    private int classifyID;
    private int borrow;
    private Classify classify;

classify

public class Classify {
    private int classifyID;
    private String classifyName;

mybatis的xml

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.jiang.mapper.BookMapper">
    <!--多表关联,通过外件的方式进行关联-->
    <resultMap id="books" type="books">
        <result property="bookID" column="bookID"/>
        <result property="bookName" column="bookName"/>
        <result property="bookCounts" column="bookCounts"/>
        <result property="detail" column="detail"/>
        <result property="borrow" column="borrow"/>
        <result property="classifyID" column="classifyID"/>
        <association property="classify" column="classifyID"
                     select="getclassify"/>
    </resultMap>

    <!--关联分类-->
    <resultMap id="BooksClassify" type="classify">
        <id property="classifyID" column="classifyID"></id>
        <result property="classifyName" column="classifyName"/>
        <collection property="booksList" column="classifyID" select="queryBooksListByForeignKey"></collection>
    </resultMap>

    <!--查询分类表的书籍-->
    <select id="getclassify" resultType="com.jiang.pojo.Classify">
        select * from classify where classifyID=#{classifyID}
    </select>

    <!--查询书籍表的书籍-->
    <select id="queryBooksListByForeignKey" resultMap="books" parameterType="java.lang.String">
        select * from books where classifyID = #{classifyID}
    </select>
</mapper>

只要在xml中写上面的内容就可以将两张表关联起来,之后只要查询books表中的数据就不需要额外操作就能将classify表中数据一起查出来,mapper接口中按以下操作就能将数据完整的查出来

mapper接口

public interface BookMapper {
    List<Books> getlist();
}

xml语句
这里的resultMap 对应上面的resultMap

 <!--要使用resultMap 返回 -->
    <select id="getlist" resultMap="books">
        select * from books
    </select>

查询结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值