`

ibatis批量修改、批量增加、批量删除

 
阅读更多
<update id="Update" resultMap="Select" parameterClass="list">
       begin
      <iterate conjunction="">
        update SYS_TABLE set
        Category=#[].Category#,
        Name =#[].Name#,
        Code =#[].Code#,               
        Status =#[].Status#
        where id = #[].Id#;     
      </iterate>
      end;    
    </update>

 1、修改:传入修改对象的List类型

<insert id="Add" resultMap="Select" parameterClass="list">
insert all
<iterate conjunction="">
into SYS_TABLE
(id,Category,Name,Code,Status)
values(#[].Id#,#[].Category#,#[].Name#,
#[].Code#,#[].Status#)
</iterate>
<!--下面这句必须加,不然会提示找不到SELECT-->
select * from dual
</insert>

 2、插入:传入对象的List类型

<delete id="Del" resultMap="Select" parameterClass="list">
      delete      
      from SYS_TABLE
      where id in    
      <iterate conjunction="," open="(" close=")">
        #[]#
      </iterate>
    </delete>

 3、删除:传入ID的List类型

 

4、获取列表跟删除一样,遍历ID的list

 

 

 

Ibatis批量添加修改删除方法

public void batchUpdate( final String statementName, final List list) { 

       try { 

           if (list != null ) { 

              this .getSqlMapClientTemplate().execute( new SqlMapClientCallback() { 

                  public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException { 

                     executor.startBatch(); 

                     for ( int i = 0, n = list.size(); i < n; i++) { 

                         executor.update(statementName, list.get(i)); 

                     } 

                     executor.executeBatch(); 

                     return null ; 

                  } 

              }); 

           } 

       } catch (Exception e) { 

           if ( log .isDebugEnabled()) { 

              e.printStackTrace(); 

              log .debug( "batchUpdate error: id [" + statementName + "], parameterObject [" + list + "].  Cause: " + e.getMessage()); 

           } 

       } 

 

    } 

    public void batchInsert( final String statementName, final List list) { 

       try { 

           if (list != null ) { 

              this .getSqlMapClientTemplate().execute( new SqlMapClientCallback() { 

                  public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException { 

                     executor.startBatch(); 

                     for ( int i = 0, n = list.size(); i < n; i++) { 

                         executor.insert(statementName, list.get(i)); 

                     } 

                     executor.executeBatch(); 

                     return null ; 

                  } 

              }); 

           } 

       } catch (Exception e) { 

           if ( log .isDebugEnabled()) { 

              e.printStackTrace(); 

              log .debug( "batchInsert error: id [" + statementName + "], parameterObject [" + list + "].  Cause: " + e.getMessage()); 

           } 

       } 

 

    } 

    public void batchDelete( final String statementName, final List list) { 

       try { 

           if (list != null ) { 

              this .getSqlMapClientTemplate().execute( new SqlMapClientCallback() { 

                  public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException { 

                     executor.startBatch(); 

                     for ( int i = 0, n = list.size(); i < n; i++) { 

                         executor.delete(statementName, list.get(i)); 

                     } 

                     executor.executeBatch(); 

                     return null ; 

                  } 

              }); 

           } 

       } catch (Exception e) { 

           if ( log .isDebugEnabled()) { 

              e.printStackTrace(); 

              log .debug( "batchDelete error: id [" + statementName + "], parameterObject [" + list + "].  Cause: " + e.getMessage()); 

           } 

       } 

 

    }

 

分享到:
评论

相关推荐

    ibatis应对批量update

    #### ibatis批量Update解决方案 ibatis提供了一套完善的批量更新机制,可以有效地解决上述问题。下面详细介绍如何利用ibatis实现高效的批量更新: 1. **准备工作**: - 首先确保你的ibatis版本支持批量更新功能。...

    ibatis3批量插入

    通过Ibatis3xml文件配置+Mysql实现数据批量插入,原先在网上找很多,都是关于批量更新,批量插入的很少,而且其写法又完全不同,所以自己研究了一下。可供参考。另外插入时如出现内容报错,请参照my.cnf修改书库配置...

    ibatis批量处理

    ### iBatis批量处理知识点详解 #### 一、iBatis基本实现 iBatis(现已更名为MyBatis)是一款优秀的持久层框架,它支持定制化SQL、存储过程及高级映射。iBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果...

    ibatis批量存储

    本文将深入探讨“ibatis批量存储”这一主题,基于给定的文件名,我们将依次解析Ibatis中的iterate标签、批处理、foreach标签以及如何在Ibatis中使用HashMap。 1. Iterate标签详解及应用: Ibatis的iterate标签主要...

    ibatis 批量 增删改查

    本篇文章将深入探讨Ibatis如何实现批量增删改查,以及相关的最佳实践。 首先,批量插入(Insert Batch)在Ibatis中可以通过动态SQL来实现。在映射文件中,你可以定义一个包含多个`&lt;insert&gt;`标签的SQL语句,每个`...

    ibatis的批量插入DAO实例

    通过以上步骤,我们就完成了Ibatis批量插入的DAO实例。在实际项目中,根据业务需求可能需要对SQL语句进行优化,如开启或关闭数据库的自动提交,或者调整批处理的大小以平衡性能和内存消耗。此外,Ibatis还支持使用`...

    ibatis批量删除的方法.docx

    在使用iBatis进行数据操作时,批量删除是常见的需求之一。iBatis是一个轻量级的持久层框架,它允许开发者将SQL语句直接写在配置文件中,提供了灵活的映射机制,使得Java对象与数据库之间的交互更加便捷。在iBatis中...

    mysql,jdbc详解,与ibatis对比。批量查询,分页处理。

    ### MySQL、JDBC详解及与iBatis对比 #### 一、MySQL基本操作 MySQL作为一款广泛使用的开源关系型数据库管理系统,在IT行业中占有极其重要的地位。对于开发人员来说,掌握MySQL的基本操作至关重要。 ##### 1. 增删...

    ibatis list

    在本文中,我们将深入探讨iBatis框架中的“ibatis批量”功能,特别是如何利用iBatis进行批量数据处理,包括批量插入、更新和删除操作。我们将通过解析提供的文件片段来阐述这一知识点,重点放在如何使用`&lt;iterate&gt;`...

    ibatis结合oracle批量插入三种方法的测评

    iBatis结合Oracle批量插入三种方法的测评 iBatis是一种流行的持久层框架,提供了对数据库的访问和操作功能。Oracle是目前最流行的关系数据库管理系统之一。今天,我们将讨论iBatis结合Oracle批量插入三种方法的测评...

    iBatis操作

    ### iBatis批量操作 #### 一、简介 在企业级应用开发中,数据库操作是不可或缺的一部分。为了提高效率和减少资源消耗,批量处理成为了一种常用的技术手段。本文将介绍如何利用iBatis框架进行批量添加、修改、删除...

    ibatis api,ibatis文档,ibatis说明文档

    Ibatis提供了两种执行器:SimpleExecutor和BatchExecutor,分别对应单条SQL执行和批量SQL执行。 5. ParameterMap和ParameterHandler:它们负责参数的设置和处理,ParameterMap代表了SQL参数的映射关系,而...

    IBatis.NET开发文档

    - 批量操作:如何利用iBATIS进行批量插入、更新或删除。 - 动态SQL的最佳实践:分享编写高效动态SQL的技巧和注意事项。 通过深入学习这些文档,开发者可以熟练掌握iBATIS.NET,实现高效、灵活的数据访问,同时...

    ibatis 使用手册

    4. **动态SQL**: iBatis支持在XML中编写动态SQL,可以根据条件动态生成SQL语句,增加了SQL的灵活性。 5. **事务管理**: iBatis提供了事务控制功能,开发者可以自定义事务的提交和回滚。 **iBatis开发指南** 开发...

    ibatis 开发指南 2004

    13. **案例分析**:通过实际案例展示iBatis在不同场景下的应用,如CRUD操作、复杂查询、批量处理等。 14. **与其他框架集成**:探讨如何将iBatis与Spring、Hibernate等其他框架集成,构建更强大的企业级应用。 这...

    Ibatis中文版教程

    除了基本的查询,iBatis还支持动态SQL、批量操作、分页等功能,这些都是在实际项目中非常实用的能力。例如,动态SQL允许开发者根据不同的条件构建SQL语句,而批量操作则可以提高数据处理的效率。 ### 四、总结 ...

    ibatis日期格式.doc

    在iBatis中,实现批量删除可以通过动态SQL,使用`IN`操作符结合`&lt;foreach&gt;`标签,将选中的ID集合传入SQL语句中。 2. **小组审核管理** - **问题1**: 建议优化`search`方法,使用联合查询替代多条SQL语句。iBatis...

    ibatis官方中文文档

    此外,文档还特别强调了如何通过iBATIS来调用存储过程,这是数据库操作中的一个重要特性,尤其是在处理复杂逻辑或批量操作时。 **iBATIS-SqlMaps-2-Tutorial_cn.pdf** 作为教程,这份文档提供了逐步指导,帮助读者...

Global site tag (gtag.js) - Google Analytics