• mybatis使用序列批量插入数据


      mybatis只提供了单条数据的插入,要批量插入数据我们可以使用循环一条条的插入,但是这样做的效率太低下,每插入一条数据就需要提交一次,如果数据量几百上千甚至更多,插入性能往往不是我们能接受的,如下例子可以成功的使用序列往oracle批量插入数据,

    mapper映射文件代码如下:

      

     <insert id="saveList" parameterType="java.util.List">
            insert into ph_org_store(id,commorgid,areaid,detailname,address,city,shopkeeper,managemodel,ybmode,tel,fax,createuserid,createtime)
            select ui_hisiris_apply.NEXTVAL, A.*  from(
            <foreach collection="list" item="item" index="index"
                separator="UNION ALL">
                SELECT
                #{item.commOrgId,jdbcType=VARCHAR},
                #{item.areaid,jdbcType=VARCHAR},
                #{item.detailName,jdbcType=VARCHAR},
                #{item.address,jdbcType=VARCHAR},
                #{item.city,jdbcType=VARCHAR},
                #{item.shopKeeper,jdbcType=VARCHAR},
                #{item.manageModel,jdbcType=VARCHAR},
                #{item.ybMode,jdbcType=VARCHAR},
                #{item.tel,jdbcType=VARCHAR},
                #{item.fax,jdbcType=VARCHAR},
                #{item.createuserid,jdbcType=VARCHAR},
                #{item.createtime,jdbcType=DATE}
                from dual
            </foreach>
            ) A
     
        </insert>
    

      在此要说明的是,如果不指定 jdbcType ,如果数据为空的情况下,即时数据库允许为空依然会报异常,因为mybatis并不能识别并对空值进行转换。union 是合并提交 或者可以使用union all,区别在于union all 允许重复的数据插入,前者将会自动过滤掉。

  • 相关阅读:
    一次闲聊
    苏活工厂团队
    《旅游网站针对‘途牛’、‘驴妈妈’的分析报告》
    C# 委托学习
    你进度太慢了
    我一个哥们经典语录
    SharePoint开发学习笔记3——Visual Web Part及自定义配置界面
    Asp.net使用JQuery实现评论的无刷新分页及分段延迟加载效果
    SharePoint开发学习笔记2——对象模型概述
    flash文件转html5工具
  • 原文地址:https://www.cnblogs.com/dquery/p/6407827.html
Copyright © 2020-2023  润新知