map对象在xml文件的遍历

当传入的对象不是实体类而是一个map对象的时候,xml文件的遍历

一般来说,我们一个简单的增删查改数据流程是:
web页面—>controller—>serviceimpl—>mapper—>xml

在这过程中,通常以一个实体类作为数据存储对象(pojo),但是但我们一些很少用到的表,我们没有必要去创建一个实体对象,我们可以用map进行存储。但是用map存储的时候,我们在xml文件中怎么遍历呢,一开始我也不清楚,在网上找了很多方法后,自己总结了一个demo,希望可以对大家有帮助。

html

var forminfo = $('#id').serializeArray();  //获取表单的数据id与表单id一致
console.log(forminfo);
$.ajax({
    type: "post",
    url: ctx+"business/datadir/saveSourceInfo",
    dataType: "json",
    data: forminfo,
    success:function () {

    },
    error:function () {

    }
});

controller

@RequestMapping("saveSourceInfo")
@ResponseBody
public Boolean saveSourceInfo(@RequestParam Map<String, String> map){
    System.out.println(map);
    boolean flag = true;
    return flag;
}

mapper

 int insertData(@Param("map") Map<String, Object> map, @Param("tableName") String tableName);
 int updateData(@Param("map") Map<String, Object> map, @Param("tableName") String tableName, @Param("id") String id);

mapper.xml

 <insert id="insertData">
        INSERT INTO ${tableName}
        <foreach collection="map" separator="," close=")" open="(" index="key" item="val">
            <if test="val != null">
                ${key}
            </if>
        </foreach>
         VALUES
        <foreach collection="map" separator="," close=")" open="(" index="key" item="val">
            <if test="val != null">
            #{val}
            </if>
        </foreach>
    </insert>
    
    <update id="updateData">
        UPDATE ${tableName}
        SET
        <foreach collection="map" item="val" index="key" separator=",">
            <if test="val != null">
                ${key} = #{val}
            </if>
            <if test="val == null">
                ${key} = null
            </if>
        </foreach>
         WHERE JTT_PRIMARY_KEY = #{id}
    </update>

原创不易,不喜勿喷,谢谢

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值