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

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

本人邮箱:[email protected],欢迎讨论

正确写法示例:

RecieveDataRecordsDao

    public long iterate_insert(List 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">

      <iterate  conjunction =","  >
           
      iterate>
    insert>

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

你可能感兴趣的:(java,spring,ibatis)