<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()); } } }
相关推荐
#### ibatis批量Update解决方案 ibatis提供了一套完善的批量更新机制,可以有效地解决上述问题。下面详细介绍如何利用ibatis实现高效的批量更新: 1. **准备工作**: - 首先确保你的ibatis版本支持批量更新功能。...
通过Ibatis3xml文件配置+Mysql实现数据批量插入,原先在网上找很多,都是关于批量更新,批量插入的很少,而且其写法又完全不同,所以自己研究了一下。可供参考。另外插入时如出现内容报错,请参照my.cnf修改书库配置...
### iBatis批量处理知识点详解 #### 一、iBatis基本实现 iBatis(现已更名为MyBatis)是一款优秀的持久层框架,它支持定制化SQL、存储过程及高级映射。iBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果...
本文将深入探讨“ibatis批量存储”这一主题,基于给定的文件名,我们将依次解析Ibatis中的iterate标签、批处理、foreach标签以及如何在Ibatis中使用HashMap。 1. Iterate标签详解及应用: Ibatis的iterate标签主要...
本篇文章将深入探讨Ibatis如何实现批量增删改查,以及相关的最佳实践。 首先,批量插入(Insert Batch)在Ibatis中可以通过动态SQL来实现。在映射文件中,你可以定义一个包含多个`<insert>`标签的SQL语句,每个`...
通过以上步骤,我们就完成了Ibatis批量插入的DAO实例。在实际项目中,根据业务需求可能需要对SQL语句进行优化,如开启或关闭数据库的自动提交,或者调整批处理的大小以平衡性能和内存消耗。此外,Ibatis还支持使用`...
在使用iBatis进行数据操作时,批量删除是常见的需求之一。iBatis是一个轻量级的持久层框架,它允许开发者将SQL语句直接写在配置文件中,提供了灵活的映射机制,使得Java对象与数据库之间的交互更加便捷。在iBatis中...
### MySQL、JDBC详解及与iBatis对比 #### 一、MySQL基本操作 MySQL作为一款广泛使用的开源关系型数据库管理系统,在IT行业中占有极其重要的地位。对于开发人员来说,掌握MySQL的基本操作至关重要。 ##### 1. 增删...
在本文中,我们将深入探讨iBatis框架中的“ibatis批量”功能,特别是如何利用iBatis进行批量数据处理,包括批量插入、更新和删除操作。我们将通过解析提供的文件片段来阐述这一知识点,重点放在如何使用`<iterate>`...
iBatis结合Oracle批量插入三种方法的测评 iBatis是一种流行的持久层框架,提供了对数据库的访问和操作功能。Oracle是目前最流行的关系数据库管理系统之一。今天,我们将讨论iBatis结合Oracle批量插入三种方法的测评...
### iBatis批量操作 #### 一、简介 在企业级应用开发中,数据库操作是不可或缺的一部分。为了提高效率和减少资源消耗,批量处理成为了一种常用的技术手段。本文将介绍如何利用iBatis框架进行批量添加、修改、删除...
Ibatis提供了两种执行器:SimpleExecutor和BatchExecutor,分别对应单条SQL执行和批量SQL执行。 5. ParameterMap和ParameterHandler:它们负责参数的设置和处理,ParameterMap代表了SQL参数的映射关系,而...
- 批量操作:如何利用iBATIS进行批量插入、更新或删除。 - 动态SQL的最佳实践:分享编写高效动态SQL的技巧和注意事项。 通过深入学习这些文档,开发者可以熟练掌握iBATIS.NET,实现高效、灵活的数据访问,同时...
4. **动态SQL**: iBatis支持在XML中编写动态SQL,可以根据条件动态生成SQL语句,增加了SQL的灵活性。 5. **事务管理**: iBatis提供了事务控制功能,开发者可以自定义事务的提交和回滚。 **iBatis开发指南** 开发...
13. **案例分析**:通过实际案例展示iBatis在不同场景下的应用,如CRUD操作、复杂查询、批量处理等。 14. **与其他框架集成**:探讨如何将iBatis与Spring、Hibernate等其他框架集成,构建更强大的企业级应用。 这...
除了基本的查询,iBatis还支持动态SQL、批量操作、分页等功能,这些都是在实际项目中非常实用的能力。例如,动态SQL允许开发者根据不同的条件构建SQL语句,而批量操作则可以提高数据处理的效率。 ### 四、总结 ...
在iBatis中,实现批量删除可以通过动态SQL,使用`IN`操作符结合`<foreach>`标签,将选中的ID集合传入SQL语句中。 2. **小组审核管理** - **问题1**: 建议优化`search`方法,使用联合查询替代多条SQL语句。iBatis...
此外,文档还特别强调了如何通过iBATIS来调用存储过程,这是数据库操作中的一个重要特性,尤其是在处理复杂逻辑或批量操作时。 **iBATIS-SqlMaps-2-Tutorial_cn.pdf** 作为教程,这份文档提供了逐步指导,帮助读者...