ResultMap结果集跨文件共享

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chenbetter1996/article/details/84671335

ResultMap的作用

主要是对于<select>查询得到的结果做数据表到POJO
  • ResultMap可以不写全所有属性(即可以省略同名的,驼峰的不能省略

跨文件共享

编写

如下写一个ResultMap.xml保存结果集

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

<!-- 共用的结果集-->
<mapper namespace="xyz.cglzwz.dao.Common">
    <resultMap id="storeResultMap" type="store">
        <id column="pk_id" property="id"/>
        <result column="uk_name" property="name"/>
        <result column="founding_time" property="foundingTime"/>
        <result column="introduction" property="introduction"/>
        <result column="address" property="address"/>
        <result column="img_url" property="imgUrl"/>
    </resultMap>

    <resultMap id="applyStoreResultMap" type="applyStore">
        <id column="pk_id" property="id"/>
        <result column="owner_id" property="ownerId"/>
        <result column="store_name" property="storeName"/>
        <result column="store_introduction" property="storeIntroduction"/>
        <result column="apply_time" property="applyTime"/>
        <result column="status" property="status"/>
    </resultMap>

    <resultMap id="bookResultMap" type="book">
        <id property="id" column="pk_id"/>
        <!-- 省略可以自动映射的字段,驼峰映射不能省略 -->
        <result column="publication_house" property="publicationHouse"/>
        <result column="publication_date" property="publicationDate"/>
        <result column="sale_volume" property="saleVolume"/>
        <result column="img_url1" property="imgUrl1"/>
        <result column="img_url2" property="imgUrl2"/>
        <result column="img_url3" property="imgUrl3"/>
        <result column="img_url4" property="imgUrl4"/>
        <result column="img_url5" property="imgUrl5"/>
    </resultMap>
    ....
</mapper>

结果集mapper的命名空间可以随意写,因为也没有对应的映射器接口。
比如直接写namespace="common"也是可以的。

调用

在需要的结果集映射里写 resultMap="xyz.cglzwz.dao.Common.结果集id" 即可

如下某个mapper文件

....
...
 <select id="selectStoreBookShow" parameterType="int" resultMap="xyz.cglzwz.dao.Common.bookResultMap">
        SELECT * FROM tb_book WHERE `show` = 1 AND pk_id IN
            ((SELECT book_id FROM tb_store_book WHERE store_id = #{storeId}))
    </select>
</mapper>

猜你喜欢

转载自blog.csdn.net/chenbetter1996/article/details/84671335