IBatis批量处理那些事
2016-08-11 22:29
239 查看
IBatis批量处理之Sql样例
批量更新:
<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>
批量删除:
<delete id="Del" resultMap="Select" parameterClass="list"> delete from SYS_TABLE where id in <iterate conjunction="," open="(" close=")"> #[]# </iterate> </delete>
批量插入:
<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>
注释一定要注意!select * from dual 这句必须加
IBatis批量处理之Java样例
总体思路都一样,一条的执行,批量提交批量更新
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 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()); } } }
批量插入
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()); } } }
Merge into的用法 – 待完善
相关文章推荐
- iBatis batch处理那些事
- ibatis的批量处理
- ibatis批量处理插入实例
- spring ibatis 批量处理数据
- Ibatis批量处理
- ibatis配合spring 数据批量处理
- ibatis批量处理+多表关联查询
- ibatis批量处理+多表关联查询
- ibatis的批量处理
- ibatis 批量处理
- [Java][ibatis]ibatis批量处理+多表关联查询
- ibatis批量处理+多表关联查询
- ibatis 批量处理
- Ibatis的批量处理-iterateiterate标签
- Ibatis的批量处理-iterateiterate标签
- ibatis 实践
- sqlibatis配置优化参数名称参数说明cacheModelsEnabled是否启动ibatis
- ibatis
- 延迟脚本的那些事
- 搜索引擎的那些事(多线程web遍历)