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