MYSQL批量插入数据

1.SQL Mapper内容

<?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="payhistrans">
    <resultMap id="BaseResultMap" type="map">
        <result column="f_merchantid" jdbcType="VARCHAR" property="fMerchantid"/>
        <result column="f_manufacturerid" jdbcType="VARCHAR" property="fManufacturerid"/>
        <result column="f_transtype" jdbcType="INTEGER" property="fTranstype"/>
        <result column="f_third" jdbcType="VARCHAR" property="fThird"/>
        <result column="f_paytype" jdbcType="CHAR" property="fPaytype"/>
        <result column="f_ordertype" jdbcType="CHAR" property="fOrdertype"/>
        <result column="f_flag" jdbcType="CHAR" property="fFlag"/>
        <result column="f_orderid" jdbcType="VARCHAR" property="fOrderid"/>
        <result column="f_refund_orderid" jdbcType="VARCHAR" property="fRefundOrderid"/>
        <result column="f_thirdptls" jdbcType="VARCHAR" property="fThirdptls"/>
        <result column="f_refund_thirdptls" jdbcType="VARCHAR" property="fRefundThirdptls"/>
        <result column="f_transdate" jdbcType="CHAR" property="fTransdate"/>
        <result column="f_transamt" jdbcType="INTEGER" property="fTransamt"/>
        <result column="f_regdate" jdbcType="CHAR" property="fRegdate"/>
        <result column="f_regtime" jdbcType="CHAR" property="fRegtime"/>
    </resultMap>
    <sql id="Base_Column_List">
	f_merchantid,f_manufacturerid,f_transtype,f_third,f_paytype,f_ordertype,f_flag,f_orderid,
	f_refund_orderid,f_thirdptls,f_refund_thirdptls,f_transdate,f_transamt,f_regdate,f_regtime
  </sql>

    <insert id="insertBatch" parameterType="map">
        insert into pay_his_trans
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="hisList != null">
                f_merchantid, f_manufacturerid, f_transtype,
                f_third, f_paytype, f_ordertype,
                f_flag, f_orderid, f_refund_orderid,
                f_thirdptls, f_refund_thirdptls, f_transdate,
                f_transamt, f_regdate, f_regtime
            </if>
        </trim>
        values
        <foreach collection="hisList" item="item" index="index" separator=",">
            <trim prefix=" (" suffix=")" suffixOverrides=",">
                <if test="item != null">
                    #{item.fMerchantid,jdbcType=VARCHAR}, #{item.fManufacturerid,jdbcType=VARCHAR},
                    #{item.fTranstype,jdbcType=INTEGER},
                    #{item.fThird,jdbcType=VARCHAR}, #{item.fPaytype,jdbcType=CHAR}, #{item.fOrdertype,jdbcType=CHAR},
                    #{item.fFlag,jdbcType=CHAR}, #{item.fOrderid,jdbcType=VARCHAR}, #{item.fRefundOrderid,jdbcType=VARCHAR},
                    #{item.fThirdptls,jdbcType=VARCHAR}, #{item.fRefundThirdptls,jdbcType=VARCHAR}, #{item.fTransdate,jdbcType=CHAR},
                    #{item.fTransamt,jdbcType=INTEGER}, #{item.fRegdate,jdbcType=CHAR}, #{item.fRegtime,jdbcType=CHAR}
                </if>
            </trim>
        </foreach>
    </insert>


</mapper>

2.Java调用代码

    private Object saveData(Map<String, Object> tradeParam) {
        List dataList = null;
        Map<String, Object> paramMap = new HashMap<String, Object>();// 数据库操作输入
        Map<String, Object> resultMap = new HashMap<String, Object>();// 返回给客户端结果
        resultMap.put("returnCode", "0000");
        try {
            paramMap.put("fMerchantid", tradeParam.get("merchantId"));
            int number = Integer.parseInt((String) tradeParam.get("number"));
            dataList = (List) tradeParam.get("dataList");
            if (dataList.size() == 0) {// 记录为0条,记录一条pay_outsave_hisstatus
                return resultMap;
            }
            List insertList = new ArrayList();
            for (Object item : dataList) {
                Map listMap = (Map) item;
                paramMap.put("fManufacturerid", listMap.get("manufacturerId"));
                paramMap.put("fTranstype", listMap.get("transType"));
                paramMap.put("fThird", listMap.get("thirdId"));
                paramMap.put("fPaytype", listMap.get("payType"));
                paramMap.put("fOrdertype", listMap.get("orderType"));
                paramMap.put("fFlag", listMap.get("flag"));
                paramMap.put("fOrderid", listMap.get("orderId"));
                paramMap.put("fRefundOrderid", listMap.get("refund_orderId"));
                paramMap.put("fThirdptls", listMap.get("thirdPtls"));
                paramMap.put("fRefundThirdptls", listMap.get("refund_thirdPtls"));
                paramMap.put("fTransdate", tradeParam.get("transDate"));
                paramMap.put("fTransamt", listMap.get("transAmt"));
                paramMap.put("fRegdate", DateUtils.getDateTime("yyyyMMdd"));
                paramMap.put("fRegtime", DateUtils.getDateTime("HHmmss"));
                logger.info("paramMap= " + paramMap);
                insertList.add(paramMap);
            }
            Map<String, Object> insertMap = new HashMap<String, Object>();
            insertMap.put("hisList", insertList);
            int ret = firstService.update("payhistrans", "insertBatch", insertMap);
            if (ret < 0) {
                resultMap.put("returnCode", "1007");
                return resultMap;
            }
        } catch (Exception e) {// 防止联机交易后异常传导到上层事务
            resultMap.put("returnCode", "9999");
        }
        return resultMap;
    }

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值