数据库
两张表通过字段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//DTD Config 3.0//EN"
        "http://mybatis/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>

查询结果

更多推荐

Mybatis双表联查