`
石头的日记
  • 浏览: 201026 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类

Ibatis 批量添加修改删除-batch-insert-update-delete

阅读更多

转载出处:http://www.javadn.com/read.php?tid-790.html

 

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());
           }
       }
 

    }

分享到:
评论
1 楼 wang4674890 2011-11-07  
天下文章一般抄!

相关推荐

    ibatis 批量 增删改查

    &lt;insert id="batchInsert"&gt; INSERT INTO users (name, email) VALUES ('${item.name}', '${item.email}') != list.size() - 1"&gt;, &lt;/insert&gt; ``` 接着,批量更新(Update Batch)同样使用`&lt;foreach&gt;`标签和...

    ibatis批量存储

    使用Ibatis的批处理,首先需要开启SqlSession的自动提交,然后调用SqlSession的batch()方法进入批处理模式,接着执行多次insert、update或delete操作,最后调用commit()方法提交事务。这种方式避免了频繁的数据库...

    ibatis2.X升级mybatis3.X之曲径通幽处

    在映射器接口方面,Mybatis3.x允许开发者直接在接口方法上使用@Select、@Insert、@Update、@Delete等注解,使得接口更加清晰,降低了学习成本。同时,3.x版本引入了MapperFactoryBean,使得Spring集成更加简便,无需...

    iBatis操作

    本文将介绍如何利用iBatis框架进行批量添加、修改、删除等操作。 #### 二、iBatis批量操作原理 iBatis(现称为MyBatis)是一个支持普通SQL查询、存储过程以及高级映射的优秀持久层框架。它消除了几乎所有的JDBC...

    ibatis配置文件模板

    - `&lt;delete&gt;`:用于删除,结构与`&lt;insert&gt;`类似。 - `&lt;resultMap&gt;`:定义复杂对象的映射,可以处理一对一、一对多、多对一等关联关系。 在实际开发中,Ibatis允许通过动态SQL来构建灵活的查询,比如`&lt;if&gt;`、`...

    Ibatis增删改查

    Ibatis 是一款轻量级的Java持久层框架,它与Hibernate和JPA等ORM框架不同,Ibatis 更注重SQL的自由度,允许开发者直接编写SQL语句,将SQL与Java代码解耦,提供了更高的灵活性。在本文中,我们将深入探讨如何使用...

    ibatis api 英文文档

    11. **Batch Operations**:iBATIS提供了批处理功能,可以一次性提交多个插入、更新或删除操作,提升批量数据处理的效率。 12. **Error Handling**:当SQL执行出错时,iBATIS会抛出异常,提供错误信息帮助定位问题...

    ibatis

    通过 `&lt;select&gt;`, `&lt;insert&gt;`, `&lt;update&gt;` 和 `&lt;delete&gt;` 标签定义 SQL 操作。 - 使用 `&lt;parameterMap&gt;` 和 `&lt;resultMap&gt;` 标签管理输入参数和输出结果集。 3. **动态 SQL** - iBatis 支持动态 SQL,可以在 XML ...

    IBatis框架

    - **XML 结构**:SQL Map 文件包含 `&lt;sqlmap&gt;` 根元素,下有 `&lt;select&gt;`, `&lt;insert&gt;`, `&lt;update&gt;`, `&lt;delete&gt;` 等元素,分别对应 SQL 查询操作。 - **参数映射**:使用 `${}` 或 `#{}` 来传递参数,前者用于简单的...

    JdbcTemplateTool.zip

    可以直接把一个PO类存到数据库通过PO类和一个id可以获取到该对象通过PO类可以直接update数据库记录不需要实现 BatchPreparedStatementSetter, 就可以批量update通过一个对PO对象删除对应的数据库记录依然可以使用...

Global site tag (gtag.js) - Google Analytics