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

转载地址:http://www.360doc.com/content/15/0528/08/1073512_473783011.shtml

//批量修改

<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>


//批量添加

<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>


//批量删除

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



后台代码

---------------------------------------------------------------------------------------------------

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

           }

       }

 

    }


猜你喜欢

转载自blog.csdn.net/lixuegen/article/details/50914349