为了账号安全,请及时绑定邮箱和手机立即绑定

Mybatis 批量插入的方法

标签:
MySQL


网上太多关于mybatis配置批量插入的文章了,大都是我写的第一种mysql配置,由于我使用的是Oracle数据库,原来对Oracle的批次插入不太了解,所以按照mysql的配置信息测试了N遍都不对,急的我去mybatis官方网站了上看了将近1天的文档,现得以解决,特此记录一下,希望帮助到同我一样困惑的人。

1.MySql环境下配置:

<insert id="insertColumnitem" parameterType="java.util.List">

    INSERT INTO REPORT_COLUMNITEM

    (COLUMN_LABEL,COLUMN_FIELD,COLUMN_INDEX,REPORT_ID,COMMENTS)VALUES

    <foreach collection="list" item="item" index="index" separator=",">

        (#{item.columnLabel,jdbcType=VARCHAR},#{item.columnField,jdbcType=VARCHAR},#{item.columnIndex,jdbcType=NUMERIC},#{item.reportId,jdbcType=NUMERIC},#{item.comments,jdbcType=VARCHAR})     

    </foreach>

</insert>

因为mysql批量插入多条数据的格式为(这并不是标准的SQL语法,因此只能在MySQL中使用):

INSERT INTO TABLE_NAME(FILED)VALUES (NAME_VALUE1), (NAME_VALUE2), (NAME_VALUE3)

2.Oracle环境下配置:

<insert id="insertColumnitem2">

    INSERT INTO REPORT_COLUMNITEM

    (COLUMN_LABEL,COLUMN_FIELD,COLUMN_INDEX,REPORT_ID,COMMENTS)

    <foreach collection="list" item="item" index="index" separator="union all">

        select

        #{item.columnLabel,jdbcType=VARCHAR},#{item.columnField,jdbcType=VARCHAR},#{item.columnIndex,jdbcType=NUMERIC},#{item.reportID,jdbcType=NUMERIC},#{item.comments,jdbcType=VARCHAR}

        from dual     

    </foreach>

</insert>

因为Oracle支持批次插入的数据格式为:

INSERT INTO TABLE_NAME(FILED)  SELECT '1' FROM DUAL  UNION ALL SELECT '2' FROM DUAL

3.关于mybatis官方网站对foreach的用法解释:

想了解更多的mybatis信息,请访问mybatis中文站:http://www.mybatis.org/mybatis-3/zh/index.html

©著作权归作者所有:来自51CTO博客作者鱼塘鱼的原创作品,如需转载,请注明出处,否则将追究法律责任

Mybatis批量插入Mybatis


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消