鍍金池/ 問答/Java  數(shù)據(jù)庫(kù)  HTML/ mybatis用foreach插入多條會(huì)報(bào)錯(cuò),一條就沒事,說是有格式錯(cuò)誤

mybatis用foreach插入多條會(huì)報(bào)錯(cuò),一條就沒事,說是有格式錯(cuò)誤

這個(gè)是xml文件:
圖片描述

下面的報(bào)錯(cuò):

### Error updating database.  Cause: java.sql.SQLException: sql injection violation, syntax error: TODO : COMMA values : insert into BIA_HGU_INFO (HGU_ID, AREA_CODE, BIND_CODE, 
      SN, HGU_MAC, PRODUCT_CLASS, 
      HGU_VENDOR, SOFTWARE_VERSION, WIFI_FLAG, 
      PPPOE_USER, VOIP_USER, REMARK, 
      DEV_TYPE)
    values 
          
        (
          ?, 
          ?, 
          ?, 
          ?, 
          ?, 
          ?, 
          ?, 
          ?, 
          ?, 
          ?, 
          ?, 
          ?, 
          ?
        )
         , 
        (
          ?, 
          ?, 
          ?, 
          ?, 
          ?, 
          ?, 
          ?, 
          ?, 
          ?, 
          ?, 
          ?, 
          ?, 
          ?
        )
         
        ;
回答
編輯回答
胭脂淚

values里面多個(gè)值的寫法,不是sql標(biāo)準(zhǔn)功能,我知道的只有mysql支持。

2018年3月1日 22:23
編輯回答
青黛色

你應(yīng)該用的druid的連接池吧,目測(cè)是druid的版本問題:
sql 里面沒有Comment,拋異常 syntax error, COMMA values
升級(jí)druid看能不能好

2018年6月8日 05:39
編輯回答
囍槑
<insert id="insertBatch" parameterType="java.util.List" useGeneratedKeys="false">
        INSERT INTO BIA_HGU_INFO (HGU_ID, AREA_CODE, BIND_CODE,
        SN, HGU_MAC, PRODUCT_CLASS, HGU_VENDOR, SOFTWARE_VERSION, WIFI_FLAG,
        PPPOE_USER, VOIP_USER, REMARK,
        DEV_TYPE)
        <foreach collection="hguInfolist" item="hguInfo" index="index" separator="union all">
            (SELECT
            #{hguInfo.hguId, jdbcType=VARCHAR},
            #{hguInfo.areaCode, jdbcType=VARCHAR},
            #{hguInfo.bindCode, jdbcType=VARCHAR},
            #{hguInfo.sn, jdbcType=VARCHAR},
            #{hguInfo.hguMac, jdbcType=VARCHAR},
            #{hguInfo.productClass, jdbcType=VARCHAR},
            #{hguInfo.hguVendor, jdbcType=VARCHAR},
            #{hguInfo.softwareVersion, jdbcType=VARCHAR},
            #{hguInfo.wifiFlag, jdbcType=DECIMAL},
            #{hguInfo.pppoeUser, jdbcType=VARCHAR},
            #{hguInfo.voipUser, jdbcType=VARCHAR},
            #{hguInfo.remark, jdbcType=VARCHAR},
            #{hguInfo.devType, jdbcType=DECIMAL}
            FROM dual
            )
        </foreach>
    </insert>
2017年7月25日 07:12