1、批量删除
<delete id="deleteCollect" parameterType="Map"> delete from FIN_PRODUCT_COLLECT where fin_product_id in <foreach collection="finProductIds" item="item" index="index" open="(" separator="," close=")">#{item}</foreach> and fin_consult_id=#{finConsultId} </delete>
String[] deleteIdsArray = deleteIds.split(","); List<Long> finProductIds = new ArrayList<Long>(); for(int i=0; i<deleteIdsArray.length; i++){ finProductIds.add(Long.parseLong(deleteIdsArray[i])); } Map<String, Object> parameters = new HashMap<String, Object>(); parameters.put("finConsultId", finConsultId); parameters.put("finProductIds", finProductIds); dao.deleteCollect(parameters);
2、批量添加
1)范例一
<insert id="insertCollect" parameterType="java.util.Map"> insert all into FIN_PRODUCT_COLLECT (fin_consult_id,fin_product_id) values(col1, col2) <foreach collection="finProductIds" item="item" separator="union all" > select #{finConsultId} as col1, #{item} as col2 from dual </foreach> </insert>
String[] insertIdsArray = insertIds.split(","); List<Long> finProductIds = new ArrayList<Long>(); for(int i=0; i<insertIdsArray.length; i++){ finProductIds.add(Long.parseLong(insertIdsArray[i])); } Map<String,Object> map = new HashMap<String,Object>(); map.put("finConsultId", finConsultId); map.put("finProductIds", finProductIds); dao.insertCollect(map);
2)范例二
<insert id="batchInsert" parameterType="java.util.List"> insert into page_logs (PAGE_TYPE, FILE_NAME, BORROW_NID, BORROW_TYPE, BORROW_NAME, CREATE_TIME) values <foreach collection="list" item="item" index="index" separator="," > (#{item.pageType}, #{item.fileName}, #{item.borrowNid}, #{item.borrowType}, #{item.borrowName}, #{item.createTime}) </foreach> </insert>
//mapper class method public int batchInsert(List<PageLogsEntity> list); public class PageLogsEntity { private Long id; private String pageType; private String fileName; private String borrowNid; private String borrowType; private String borrowName; private Date createTime; }
相关推荐
Mybatis Plus 自定义批量插入或批量更新(根据唯一索引)
Mybatis批量foreach merge into的用法 Mybatis批量foreach merge into的用法是通过Mybatis的动态SQL语法foreach循环插入实现的,这种方法可以批量插入时间价格表数据。如果某个套餐的某天的价格存在,则更新,不...
Mybatis与JDBC批量插入MySQL数据库性能测试,资源包含文档、代码和数据库。
测试在单元测试中
在实际开发中,经常需要对多个表进行联合查询,或者对大量数据进行批量插入。本文将详细介绍如何使用Mybatis实现多表联合查询和批量插入。 一、多表联合查询 在实际开发中,经常需要对多个表进行联合查询,例如,...
NULL 博文链接:https://hzs0502030128.iteye.com/blog/2254585
压缩包有eclipse包文件和操作步骤word文档 mybatis数据操作(增删改查+批量操作)
在数据库操作中,批量插入数据是常见的需求,尤其是在处理大量数据时,批量插入能够显著提高效率。Mybatis,作为一款轻量级的持久层框架,提供了灵活的方式来处理批量添加。本文将详细介绍如何使用Mybatis进行批量...
MyBatis 是一个流行的持久层框架,它提供了插件机制来拦截 SQL 操作,以便于开发者可以在执行 SQL 语句前进行预处理或后续处理。本文将详细介绍 MyBatis 插件机制的实现原理和应用场景。 MyBatis 插件机制的实现...
在本文中,我们将实现一个批量删除操作,在前端,我们使用了一个列表页面,列表可以进行复选框的选择,后台进行关联表数据的删除。 框架介绍 我们的框架使用了 Spring Boot 和 MyBatis,数据库使用的是 PostgreSQL...
关于数据库批量插入时sql语句级的优化,我特意测试了两种方式,在StudentMapper中配置了两种insert模式。第一种对应insert value1,insert value2,,,,;第二种对应insert values (value1, value2,....)。发现后者果然...
如果在批量操作中出现错误,应妥善处理异常,决定是回滚整个事务还是只回滚失败的部分。 总的来说,Java开发中使用MyBatis与Oracle配合进行批量导入时,关键在于如何构造正确的SQL语句以适应Oracle的特性,如使用...
在这个例子中,我们还使用了SqlSession的flushStatements方法来提交批量操作。这个方法将所有缓存在内存中的SQL语句执行到数据库中。这可以保证数据的一致性和可靠性。 在MyBatis中,BATCH模式也可以与Mapper接口...
在实际的插入操作中,可以通过`getSqlSession().insert(method, entity)`调用Mapper中的方法,其中`method`是映射方法的ID,`entity`是传入的参数列表。 批量插入的优势在于减少了数据库的交互次数,提高了效率。但...
在Mybatis中,可以使用updateBatch方法来进行批量更新,以提高数据库操作的效率。可以使用逐条更新或SQL批量更新两种方式,前者简单易用,但效率较低;后者可以大大提高批量更新的效率,但需要注意SQL语句的长度和...
在实际测试中,使用MyBatis批量插入可以达到至少快一倍的执行效率。 MyBatis批量插入的实现可以通过使用foreach标签来实现。在XML配置文件中,我们可以使用foreach标签来批量插入数据。例如: ```xml insert into...
包括MyBatis-Plus提供的批量更新,JdbcTemplate提供的批量更新,在xml中循环拼接sql批量更新、case when语句批量更新、replace into方式批量更新、ON DUPLICATE KEY UPDATE批量更新。 适用于对Spring Boot和数据库...
在实际开发中,我们经常需要对多个表进行批量删除操作,这时就需要使用MyBatis的批量删除功能。今天,我们就来讲解MyBatis中的批量删除操作。 MyBatis中的批量删除操作可以通过在Mapper文件中定义delete语句来实现...
在MyBatis中,批量删除数据是常见的数据库操作,尤其在处理大量数据时非常有用。以下是如何在MyBatis中实现根据ID批量删除的操作: ### 第一种方式:使用`<foreach>`标签 这种方式是在Mapper XML文件中直接使用`...
在使用时,需要注意SQL字符串的编写规范,理解#{}和${}的区别,以及合理利用`<foreach>`标签进行批量操作。这使得MyBatis不仅简化了数据库操作,也提升了开发效率。在实际应用中,应结合业务需求,合理选择查询方式...