mybatis批量插入报错:','附近有错误

来源:互联网 发布:无间道 港片 知乎 编辑:程序博客网 时间:2024/04/29 22:45

mybatis批量插入的时候报错,报错信息‘,’附近有错误
这里写图片描述
mapper.xml的写法为

<insert id="insertByBatch">        INSERT INTO USER_LOG (USER_ID, OP_TYPE, CONTENT, IP, OP_ID, OP_TIME) VALUES         <foreach collection="userIds" item="userId" open="(" close=")" separator=",">            (#{rateId}, #{opType}, #{content}, #{ipStr}, #{userId}, #{opTime},        </foreach>    </insert>

打印的sql语句

INSERT INTO USER_LOG (USER_ID, OP_TYPE, CONTENT, IP, OP_ID, OP_TIME) VALUES     (      (?, ?, ?, ?, ?, ?)       ,     (?, ?, ?, ?, ?, ?)        )

调试的时候还是把sql复制到navicate中进行检查,就报了上面的错。这个错看起来毫无头绪,然后就自己重新写insert语句,发现正确的语句应该为

INSERT INTO USER_LOG (USER_ID, OP_TYPE, CONTENT, IP, OP_ID, OP_TIME) VALUES          (?, ?, ?, ?, ?, ?)       ,     (?, ?, ?, ?, ?, ?)

比之前的sql少了外面的括号,此时运行成功,所以mapper.xml中应该把opern=”(” close=”)”删除即可。
多说一句,批量插入的时候也可以把要插入的数据组装成List<实体>,这样就不用传这么多的参数了。

阅读全文
0 0
原创粉丝点击