`
raymond.chen
  • 浏览: 1436916 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

在mybatis中进行批量操作

 
阅读更多

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 5种批量操作性能测试

    本测试主要探讨了 MyBatis Plus 中的五种批量操作方式,并通过单元测试进行性能测试。 1. **单条插入(Insert)** MyBatis Plus 提供了单条数据插入的方法,`insert()` 或 `insertIntoTable()`. 这种方法适合插入...

    Mybatis与JDBC批量插入MySQL数据库性能测试

    在数据库操作中,批量插入(Batch Insert)是一种提高性能的有效方式,尤其是在处理大量数据时。本文将探讨Mybatis和JDBC在批量插入MySQL数据库时的性能差异,并提供相关的测试资源。 首先,JDBC(Java Database ...

    Mybatis Plus 自定义批量插入或批量更新(根据唯一索引)

    Mybatis Plus 是 Mybatis 的一个扩展工具,它在 Mybatis 的基础上提供了许多便捷的功能,包括自动 CRUD 操作、条件构造器、批量操作等。在实际的项目开发中,批量插入和批量更新是常见的数据处理场景,尤其是在处理...

    mybatis数据操作(增删改查+批量操作)

    在"mybatis数据操作(增删改查+批量操作)"这个主题中,我们将深入探讨如何利用MyBatis进行基本的数据操作,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select),以及如何执行批量操作。...

    Mybatis批量foreach merge into的用法

    Mybatis批量foreach merge into的用法 Mybatis批量foreach merge into的用法是通过Mybatis的动态SQL语法foreach循环插入实现的,这种方法可以批量插入时间价格表数据。如果某个套餐的某天的价格存在,则更新,不...

    Mybatis实现多表联合查询和批量插入

    在实际开发中,经常需要对多个表进行联合查询,或者对大量数据进行批量插入。本文将详细介绍如何使用Mybatis实现多表联合查询和批量插入。 一、多表联合查询 在实际开发中,经常需要对多个表进行联合查询,例如,...

    mybatis 通用分页插件和批量操作插件

    NULL 博文链接:https://hzs0502030128.iteye.com/blog/2254585

    SpringBoot整合Mybatis连接SQL Server 跨库批量插入

    这里需要注意的是,SQL Server不支持跨库的事务管理,所以在进行跨库操作时,每个数据库的操作需要独立处理事务。如果其中一个操作失败,你需要捕获异常并手动回滚其他成功的操作。 批量插入可以提高数据插入效率,...

    MyBatis防止批量更新1

    MyBatis 是一个流行的持久层框架,它提供了插件机制来拦截 SQL 操作,以便于开发者可以在执行 SQL 语句前进行预处理或后续处理。本文将详细介绍 MyBatis 插件机制的实现原理和应用场景。 MyBatis 插件机制的实现...

    mybatis postgresql 批量删除操作方法

    在本文中,我们将实现一个批量删除操作,在前端,我们使用了一个列表页面,列表可以进行复选框的选择,后台进行关联表数据的删除。 框架介绍 我们的框架使用了 Spring Boot 和 MyBatis,数据库使用的是 PostgreSQL...

    MyBatis通过BATCH批量提交的方法

    在这个例子中,我们还使用了SqlSession的flushStatements方法来提交批量操作。这个方法将所有缓存在内存中的SQL语句执行到数据库中。这可以保证数据的一致性和可靠性。 在MyBatis中,BATCH模式也可以与Mapper接口...

    mybatisr代码生成插件(中文注释,生成批量插入及修改)

    在处理大量数据时,传统的单条插入或修改操作效率低下,而批量操作可以显著提升性能。MBG的批量操作通常会使用PreparedStatement的批处理特性,避免了多次数据库连接和解析SQL的过程,大大减少了数据库的负担。 在...

    MyBatis的关于批量数据操作的体会

    关于数据库批量插入时sql语句级的优化,我特意测试了两种方式,在StudentMapper中配置了两种insert模式。第一种对应insert value1,insert value2,,,,;第二种对应insert values (value1, value2,....)。发现后者果然...

    mybatis的oracle的批量插入优化和mybatis的generator自动生成三层文件

    本文将详细探讨如何在Oracle数据库中进行批量插入优化,并介绍MyBatis Generator这一自动化代码生成工具,以提高开发效率。 首先,让我们深入理解Oracle数据库中的批量插入。批量插入可以显著提升性能,尤其是在...

    mybatis使用annotation在mysql,oracle上进行批量处理

    在执行批量操作时,将这些对象封装到List中传递给Mapper方法。 4. **使用SqlSession进行批量操作**: 在Service或DAO层,创建`SqlSession`对象,调用Mapper接口的方法,并传入数据集合。在`SqlSession`中执行`...

    mybatis+Oracle做批量导入时的坑

    如果在批量操作中出现错误,应妥善处理异常,决定是回滚整个事务还是只回滚失败的部分。 总的来说,Java开发中使用MyBatis与Oracle配合进行批量导入时,关键在于如何构造正确的SQL语句以适应Oracle的特性,如使用...

    Java实现mybatis批量插入数据到Oracle

    在Java开发中,MyBatis是一个非常流行的持久层框架,它简化了数据库操作,使得开发者可以更加专注于SQL语句的编写。本篇文章将详细介绍如何利用Java和MyBatis实现批量插入数据到Oracle数据库中。 首先,我们需要...

    SpringMVC + Mybatis 增删改查(批量删除)

    总结来说,SpringMVC+Mybatis的组合提供了强大的Web应用开发能力,通过合理的配置和编程,可以轻松实现各种复杂的业务逻辑,包括基础的增删改查和批量操作。在实际项目中,这种组合既保证了代码的简洁性,又提高了...

    mybatis批量添加实现1

    在数据库操作中,批量插入数据是常见的需求,尤其是在处理大量数据时,批量插入能够显著提高效率。Mybatis,作为一款轻量级的持久层框架,提供了灵活的方式来处理批量添加。本文将详细介绍如何使用Mybatis进行批量...

    Mybatis 3+Mysql 实现批量插入

    综上所述,利用MyBatis结合MySQL实现批量插入不仅可以大幅提高数据处理效率,还能有效降低系统资源消耗,是数据库操作中不可或缺的一项技能。通过上述详细讲解,相信读者已经对如何实现批量插入有了清晰的理解。

Global site tag (gtag.js) - Google Analytics