ibatis批量操作在Java中实现

本文介绍了一种使用SqlMapClientTemplate进行数据库批量更新、插入和删除的方法,通过实现SqlMapClientCallback接口,有效地提高了数据库操作的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

           }

       }


    }


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值