数据库
两张表通过字段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双表联查
发布评论