Mbatis批量插入

简介: Mbatis批量插入@Date 2016.11.13使用Mbatis批量插入功能代码示例在做批量插入时要注意细节、如有写错会有奇怪的异常抛出有可能会出现异常 : Parameter ‘__frch_callRecord_0’ not fo...

Mbatis批量插入

@Date 2016.11.13

使用Mbatis批量插入功能代码示例

  • 在做批量插入时要注意细节、如有写错会有奇怪的异常抛出
  • 有可能会出现异常 : Parameter ‘__frch_callRecord_0’ not found
@Insert('''<script>
        INSERT INTO xxx (
            prefix_number,
            serial_number,
            is_register,
            insert_date,
            update_date,
            all_number,
            merchant_id
        ) VALUES
        <foreach collection="list" item="item" index="index" separator="," >
            (
                #{item.prefixNumber},
                #{item.serialNumber},
                #{item.isRegister},
                now(),
                now(),
                #{item.allNumber},
                #{item.merchantId}
            )
        </foreach>
    </script>''')

批量插入时遇到如下异常(Caused by: org.apache.ibatis.binding.BindingException: Parameter ‘__frch_callRecord_0’ not found.)

异常现象

  • 使用mbatis批量插入时、出现如下异常:
Caused by: org.apache.ibatis.binding.BindingException: Parameter '__frch_callRecord_0' not found.

解决思路

  • Mbatis对此类问题的异常描述不是很清晰,如出现上诉异常,主要检查以下几个方面
    • 批量插入的List对象中字段是否和数据库表中字段名一致并且都存在
    • 批量插入的List对象中是否有NULL的对象(此原因很重要)
    • 在Mbatis的XML或者注解的Sql语句中,是否传入的表字段和list字段一致
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
SQL批量插入测试数据的几种方法?
SQL批量插入测试数据的几种方法?
95 1
|
6月前
|
SQL 人工智能 关系型数据库
|
Java 大数据 Spring
MyBatis-Plus - 批量插入、更新、删除、查询
MyBatis-Plus - 批量插入、更新、删除、查询
2408 0
|
SQL API 数据库
Mybatits-plus实现简单的多表联查和分页操作
mybatits-plus提供了简单的curd单表操作API,可以使用多样的方式实现。但是多表联查的时候,我遇到了一些困难,不可以使用通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错。于是就回归到了Mapper.xml文件,这种方法实现起来简单,也可以实现动态sql,非常方便。
156 0
|
SQL XML 数据格式
MaBatis:动态SQL使用foreach进行批量插入
MaBatis:动态SQL使用foreach进行批量插入
258 0
使用存储过程批量更新单表中的数据
使用存储过程批量更新单表中的数据
|
关系型数据库 MySQL 大数据
MySQL 批量插入,如何不插入重复数据?
知识这个东西,看来真的要温故而知新,一直不用,都要忘记了。 业务很简单:需要批量插入一些数据,数据来源可能是其他数据库的表,也可能是一个外部excel的导入。 那么问题来了,是不是每次插入之前都要查一遍,看看重不重复,在代码里筛选一下数据,重复的就过滤掉呢? 向大数据数据库中插入值时,还要判断插入是否重复,然后插入。如何提高效率?
421 0
|
SQL
SQL查询数据并插入新表
SQL查询数据并插入新表     --如果接受数据导入的表已经存在 insert into 表 select * from tablename --如果导入数据并生成表 select * into 表 from tablename  网名:浩秦; 邮箱:root#landv.pw; 只要我能控制一個國家的貨幣發行,我不在乎誰制定法律。
1958 0
|
SQL 监控 关系型数据库
下一篇
无影云桌面