`

myBatis批量新增__Oracle数据库

阅读更多
    项目中用MyBatis作为DAO层,用Oracle数据库进行存储。用户需要一个批量新增的功能,刚开始打算用Mybatis的批量新增,调试了好长时间,一直没调试出来,老报错,结果就先采用单条新增进行循环的方式来处理。 这几天有时间,正好又要优化上次的批量功能,就继续来弄一下Mybatis的批量新增功能。

     几经折腾,按照网上说的方法都试了一遍,还是不行,最后发现原来是数据库的问题。MyBatis的批量新增针对Oracle的写法和MySql的不一样。网上大部分都是MySql的写法。

下面贴出针对Oracle进行批量新增的写法。


Service层:

/*
* 插入北方来话统计数据(根据集合进行插入)
*/
public ServiceResult<BatchDataImportBean> insertTollNorthBatch(Long rateCycle,List list) {
try {
batchDataImportDao.insertTollNorthBatch(rateCycle,list);
} catch (Exception e) {
userContext.setSuccess(false);
userContext.setMessage(e.getMessage());
}
return userContext;
}






Dao层:


/*
* 在后台批量插入(根据集合来进行插入)
*/
public int insertTollNorthBatch(@Param("rateCycle")Long rateCycle, @Param("list")List list);




MyBatis配置:

  <insert id="insertTollNorthBatch" parameterType="map"> 
  insert into d_toll_north_data_${rateCycle} (RATE_CYCLE_ORG, NF_PROV_ID, NF_AREA_CODE, BF_PROV_ID, BF_AREA_CODE, DURATIONS, FEES)
<foreach collection="list" item="item" index="index"  separator="union all"> 
       select #{item.rateCycleOrg ,jdbcType=NUMERIC},
        #{item.nfProvId,jdbcType=NUMERIC},
        #{item.nfAreaCode,jdbcType=NUMERIC},
        #{item.bfProvId,jdbcType=NUMERIC},
        #{item.bfAreaCode,jdbcType=NUMERIC},
        #{item.durations,jdbcType=NUMERIC},
        #{item.fees,jdbcType=NUMERIC}  from dual
    </foreach> 
</insert> 





  具体可以参考:http://www.cnblogs.com/dyllove98/archive/2013/08/03/3235546.html    



  @yongtaixincun.baiyunqu.guangzhou    2014-09-25 23:47























0
0
分享到:
评论

相关推荐

    Mybatis批量foreach merge into的用法

    Mybatis批量foreach merge into的用法 Mybatis批量foreach merge into的用法是通过Mybatis的动态SQL语法foreach循环插入实现的,这种方法可以批量插入时间价格表数据。如果某个套餐的某天的价格存在,则更新,不...

    mybatis中批量插入的两种方式(高效插入)

    本文将深入探讨MyBatis中实现批量插入的两种高效方式。 ### 1. MyBatis `foreach` 标签 `foreach` 是MyBatis中用于在SQL语句中迭代集合的标签,特别适合构建`IN`条件。`foreach` 元素的属性包括: - `item`: 集合...

    基于数据库的自动化生成工具,自动生成JavaBean、自动生成数据库文档等(v5.8.0版_JAR)

    于是一怒之下,自己动手丰衣足食,于是就自己用Swing写了一个基于数据库的自动化生成工具,支持MySQL、Oracle、SQLServce、PostgreSQL四种数据库,支持Window、Linux、MacBook等多个作系统,完美支持JPA注解,可以...

    J2EE spring mvc mybatis bootstrap HTML5 后台框架 控制台 oracle版本_spring3.0

    【源码】oracle版本_spring3.0 系统模块 1. 组织管理:角色管理,分角色组和成员,有组权限和成员权限。 2. 系统用户:对各个基本的组会员增删改查,单发、群发邮件短信,导入导出excel表格,批量删除 3. 会员管理:...

    mybatis-generator.rar

    MBG支持多种数据库,包括MySQL、Oracle、SQL Server等,能够根据数据库表结构生成对应的实体类、Mapper接口和XML映射文件,简化了开发过程。 2. **安装与配置** 使用MBG首先需要将其添加到项目的依赖库中,可以...

    mybatis创建一个或多个新用户 insert 字段和表名不确定时动态添加问题

    2. `select result.*,seq.nextval id from (...) result`:这里使用了子查询,并且为每个用户分配了一个唯一的id(假设数据库支持序列,如Oracle)。 3. `&lt;foreach&gt;`标签处理`lineList`,对于每个用户(`item`),...

    xmljava系统源码-mybatis-generator-gui-plus:mybatis-generator-gul-plus

    可选的去除掉对版本管理不友好的注释,这样新增或删除字段重新生成的文件比较过来清楚 目前已经支持Mysql、Mysql8、Oracle、PostgreSQL与SQL Server,暂不对其他非主流数据库提供支持。(MySQL支持的比较好,其他...

    java快速插入千万级数据

    java快速插入千万级数据,亲测91秒插入1700万数据!!!

    SSM《程序设计基础》课程答疑系统(源码+数据库)261620

    此外,教师可以不定时地对问题库进行管理,包括新增、删除、批量操作等,这些问题可能被分类存储,便于检索。 对于学生来说,他们同样可以查看和编辑个人资料,提出问题并查看教师的回复。在讨论区,学生可以与其他...

    使用方法1

    - 这是MyBatis Generator的主要配置文件,它包含了数据库连接信息、生成的代码类型等。你可以在此处定义生成的类(例如:Model、Mapper、DAO)以及它们的属性和行为。 3. **自定义模板** - 如果你想自定义生成的...

Global site tag (gtag.js) - Google Analytics