Mybatis Oracle批量添加

 !!!Oracle的批量插入与mysql不一样!!! 

mapper接口

    /**
     * CBD批量入库
     * @param exdBizReportCBDList
     * @return
     */
    int batchInsert(@Param("exdBizReportCBDList")Set<ExdBizReportCBD> exdBizReportCBDList);

xml文件

    <insert id="batchInsert">
        insert into
       exd_biz_report_cbd(ID,CBD_CODE,CBD_NAME,AREA_CODE,CBD_CITY_LEVEL,MEMO,DR,CREATE_USER,CREATE_TIME,UPDATE_USER,UPDATE_TIME)
        <foreach collection="exdBizReportCBDList" item="exdBizReportCBD" separator="union all" open="(" close=")">
            select
            #{exdBizReportCBD.id,jdbcType=VARCHAR},
            #{exdBizReportCBD.cbdCode,jdbcType=NULL},
            #{exdBizReportCBD.cbdName,jdbcType=NULL},
            #{exdBizReportCBD.areaCode,jdbcType=NULL},
            #{exdBizReportCBD.cbdCityLevel,jdbcType=NULL},
            #{exdBizReportCBD.memo,jdbcType=NULL},
            #{exdBizReportCBD.dr},
            #{exdBizReportCBD.createUser},
            #{exdBizReportCBD.createTime},
            #{exdBizReportCBD.updateUser,jdbcType=NULL},
            #{exdBizReportCBD.updateTime}
            from dual
        </foreach>
    </insert>

注意,插入Null提示无效字符 111

网上说有两种解决方案

  1. 在插入语句中的字段的表达式括号内加入jdbc类型
#{exdBizReportCBD.cbdCode,jdbcType=NULL}
  1. 在Mybatis全局配置文件中加入setting;

    jdbcTypeForNull

    <settings>
       <setting name="jdbcTypeForNull" value="NULL" />
    </settings>
    

    第二种方法,我想在application.yml中设置,没效果,暂时使用第一种方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值