工作中需要批量导入excel数据到mysql数据库中
excel数据量比较大,一次大概导入1万多条
用传统的for循环导入mysql数据库的话,非常耗时,大概3分钟左右
所有就需要用到批处理,核心算法如下
/** * 批量插入功能 */ @SuppressWarnings("unchecked") public void insertBatch(final List<WinddataBo> list) { SqlMapClient sqlMapClientTemplate = baseDao.getSqlMapClient(); try { sqlMapClientTemplate.startTransaction();//开启事务 /**事务todo start***/ /**先执行删除所有**/ sqlMapClientTemplate.delete("com.zero2ipo.ylcf.winddata.deleteAll"); sqlMapClientTemplate.insert("com.zero2ipo.ylcf.winddata.insertBatch",list); /**事务todo end***/ sqlMapClientTemplate.commitTransaction();//提交事务 } catch (SQLException e) { e.printStackTrace(); }finally { try { sqlMapClientTemplate.endTransaction();//事务完成 } catch (SQLException e) { try { sqlMapClientTemplate.getCurrentConnection().rollback(); //事务回滚 } catch (SQLException e1) { e1.printStackTrace(); } e.printStackTrace(); } } }
ibatis sql文件如下
<!--批量插入--> <insert id ="com.zero2ipo.ylcf.winddata.insertBatch" parameterClass ="java.util.List"> <![CDATA[ insert into winddata(CRETE_DATE , SHOUPANJIA , COLUMN1,COLUMN2 ) values ]]> <iterate conjunction ="," > <![CDATA[ (#list[].creteDate#,#list[].shoupanjia#,#list[].column1#,#list[].column2#) ]]> </iterate > </insert >
1次导入excel1万多条数据,耗时大概3秒钟
部分效果图
相关推荐
本工程用于研究Ibatis和MySQL结合使用的方法 本工程编码方式:UTF-8 须执行的SQL语句: CREATE DATABASE `test`; USE `test`; DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` char(36) NOT NULL...
在本实例中,我们将深入探讨如何使用Ibatis框架与MySQL数据库进行交互。Ibatis是一个优秀的持久层框架,它简化了Java应用与数据库之间的数据操作,避免了传统的JDBC代码繁琐的过程。MySQL则是一款广泛使用的开源关系...
C#中iBatis连接mySQL使用的DLL
"IBatis查删改查与调用存储过程 mysql数据库" 这个标题揭示了本文将深入探讨如何使用IBatis框架在MySQL数据库中执行基本的CRUD(创建、读取、更新、删除)操作,以及如何调用存储过程。IBatis是一个轻量级的Java持久...
在本教程中,你将深入理解如何利用iBatis与MySQL数据库进行交互,提升你的软件开发技能。以下是对每个部分的详细解释: 1. **iBatis简介** iBatis是一个基于Java的数据库访问框架,它避免了几乎所有的JDBC代码和...
本工程用于研究Spring、Ibatis结合MySQL数据库的使用方法 本工程编码方式:UTF-8 须执行的SQL语句: CREATE DATABASE `test`; USE `test`; DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` char...
这个"ibatis + mysql 实例"提供了一个具体的案例,演示了如何结合这两个技术进行基本的数据操作,如增、删、改、查。Ibatis是一个轻量级的Java持久层框架,它允许开发者将SQL语句直接写在配置文件中,与传统的JDBC...
### ibatis应对批量update 在处理大量数据更新时,传统的for循环方式往往会导致效率低下。这是因为每一次循环都需要执行一次数据库连接操作,对于批量更新来说,这样的处理方式显然不够高效。为了解决这个问题,...
Struts、Spring、iBatis和MySQL是Java Web开发中常用的四大框架,它们共同构建了一个高效、灵活且可扩展的应用程序架构。这个整合实例提供了基于这些技术的源码,可以帮助开发者深入理解它们如何协同工作。 Struts...
本工程以“银行账号转账”为例子演示了 如何处理Ibatis结合MySQL数据库使用时的事务操作 本工程编码方式:UTF-8 须执行的SQL语句: CREATE DATABASE `test`; USE `test`; CREATE TABLE `lm_bank_card` ( `id` ...
《IBatis.net 配置各种数据库详解》 在软件开发中,数据库的连接与操作是不可或缺的一环。IBatis.net,作为一个轻量级的持久层框架,为开发者提供了灵活的数据映射功能,使得数据库操作变得更为简单。本文将详细...
通过解压"Ibatis01MySql"这个文件,你可以看到实际的项目结构,包括Ibatis的配置文件、Mapper接口、映射文件以及数据库的SQL脚本。这将帮助你更直观地了解Ibatis是如何与MySql协作的,同时也方便你动手实践,加深...
通过Ibatis3xml文件配置+Mysql实现数据批量插入,原先在网上找很多,都是关于批量更新,批量插入的很少,而且其写法又完全不同,所以自己研究了一下。可供参考。另外插入时如出现内容报错,请参照my.cnf修改书库配置...
本工程以“银行账号转账”为例子演示了如何处理Spring、Ibatis结合MySQL数据库使用时的事务操作 本工程编码方式:UTF-8 须执行的SQL语句: CREATE DATABASE `test`; USE `test`; CREATE TABLE `lm_bank_card` ( `...
开发环境说明 ...本示例完整地结合Struts2+Spring2+iBatis2+MySQL5,演示了一个用户表的增、删、改、查。 想完整学习Struts2+Spring+iBatis的同仁,可以在这个例子中学习或模仿最基本也是最核心的技术要点。
iBatis,全称为MyBatis iBatis,是一个基于Java的持久层框架,它简化了数据库与应用程序之间的交互,避免了直接编写大量的SQL语句和手动处理结果集。在这个过程中,iBatis提供了一个SQL映射框架,允许开发者将SQL...
结合这三个元素,“ibatis驱动+Mysql驱动+SQL驱动”组合为Java开发者提供了完整的数据库操作解决方案。开发者可以通过Ibatis的API编写SQL,利用MySQL JDBC驱动与数据库建立连接,执行SQL语句,最后通过SQL驱动处理...
### MySQL、JDBC详解及与iBatis对比 ...通过对MySQL的基本操作、JDBC的工作原理以及iBatis与JDBC的对比分析,我们可以更全面地理解数据库编程的关键概念和技术要点。希望本文能够帮助开发者们更加熟练地掌握这些技能。
在这个"asp.net MVC和IBatis.net整合demo数据库部分"中,我们主要探讨如何在ASP.NET MVC项目中集成Ibatis.net,实现数据访问层的功能。首先,我们需要安装Ibatis.net相关的NuGet包,这通常可以通过Visual Studio ...
iBatis是一个优秀的Java持久层框架,它主要负责数据库的交互,通过XML或注解方式配置和映射SQL,使得开发者能够将精力集中在业务逻辑上,而不是繁琐的JDBC代码。iBatis的核心思想是将SQL语句和Java代码分离,提供了...