mybatis中设置自增的值,使用resultmap设置多对一的关系以及使用级联的方式设置多对一的关系

发布时间 2023-09-11 21:09:36作者: 努力是一种常态

2023-09-11

UserMapper

void insertUser(User user);

UserMapper.xml

<insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
        insert into t_user values(null,#{name},#{password},#{age},#{gender},#{email})
    </insert>

 --------------------------------------

StoreHouseMapper

  List<StoreHouse> getGoodsAndStoreHouse(@Param("goodId")Integer goodId);

StoreHouseMapper.xml

<!--方式一-->
    <resultMap id="getGoodsAndStoreHouseRMOne" type="StoreHouse">
        <id column="id" property="id"/>
        <result column="s_name" property="sName"/>
        <result column="s_type" property="sType"/>
        <result column="s_description" property="sDescription"/>
        <result column="g_id" property="goods.gId"/>
        <result column="g_name" property="goods.gName"/>
    </resultMap>

<!--方式二-->
    <resultMap id="getGoodsAndStoreHouseRM" type="StoreHouse">
        <id column="id" property="id"/>
        <result column="s_name" property="sName"/>
        <result column="s_type" property="sType"/>
        <result column="s_description" property="sDescription"/>
        <association property="goods" javaType="goods">
            <id column="g_id" property="gId"/>
            <result column="g_name" property="gName"/>
        </association>
    </resultMap>

    <select id="getGoodsAndStoreHouse" resultMap="getGoodsAndStoreHouseRM">
        select t_storehouse.*,t_goods.g_name
        from t_storehouse left join t_goods
        on t_storehouse.g_id = t_goods.g_id
    </select>