码迷,mamicode.com
首页 > 其他好文 > 详细

ibatis使用iterate实现批量插入insert正确写法

时间:2018-11-04 15:38:09      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:map   ror   eid   time   data   lis   class   mapper   ibatis   

由于想批量入库提升效率,最近实现了ibatis的批量插入,结果一直报错 :StringIndexOutOfBoundsException ,原来是value中的格式不正确。

本人邮箱:techqu@163.com,欢迎讨论

正确写法示例:

RecieveDataRecordsDao

   public long iterate_insert(List<RecieveDataRecordsDB> db) {
        Object obj = getSqlMapClientTemplate().insert("iterate_insert", db);
        if (obj == null) { return 0; }

        return (Long) obj;
    }
mapper.xml

<insert  id ="iterate_insert"   parameterClass ="java.util.List">

insert into recieve_data_records (trader_serial_id,phone_num,data_volume,timestamp,lasttime,errorcount,errordesc,errorchannel,type,operator,provinceId,appid) values      

      <iterate  conjunction =","  >
     (#db[].trader_serial_id:VARCHAR#,#db[].phone_num:BIGINT#,#db[].data_volume:BIGINT#,#db[].timestamp:BIGINT#,#db[].lasttime:BIGINT#,#db[].errorcount:INTEGER#,#db[].errordesc:VARCHAR#,#db[].errorchannel:INTEGER#,#db[].type:INTEGER#,#db[].operator:INTEGER#,#db[].provinceid:VARCHAR#,#db[].appid:VARCHAR#)         
      </iterate>

</insert>

 

 

 

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

注意事项:
1. value内的值,必须按照 #传入参数名[].属性名:类型 这个格式写。否则会报 StringIndexOutOfBoundsException 异常。方括号将参数标记为List,否则解析器会简单的将List输出成String。我检查半天才发现原来是格式不正确引起的
2. 如果传入的参数类型是List,则不需要在iterate上写property属性
---------------------

ibatis使用iterate实现批量插入insert正确写法

标签:map   ror   eid   time   data   lis   class   mapper   ibatis   

原文地址:https://www.cnblogs.com/weixupeng/p/9903953.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!