实现Java批量插入数据库数据,在javaeye中看到过几篇关于实现Java批量插入数据库数据,转载时没有找到,就自己写一下,也算是对自己学习过程中所遇到过的问题做一个总结。
一般关于批量向数据库插入数据都采用PreparedStatement、Statement…………也包括直接使用JDBC API、框架…………
也看到过几篇关于这些内容的总结,及大家的评论,以下为我总结的关于批量向数据库插入数据。
1,使用JDBC API实现配量插入数据:有篇文章介绍过关于JDBC API、Hibernate实现批量插入数据,采用JDBC API 方式实现随着数据的增长,速度更胜于Hibernate。当然,对于这个测试的准确我并不保证,但是我也会优先选用JDBC API方式实现(原因:简单、易学、相对于框架更通用,不会过时)。
2,采用PreparedStatement对象实现批量插入数据:PreparedStatement是真正的批处理命令,不是其他的伪批处理命令可以相比的(个人意见),它相对于其他的实现批量处理是非常的强大,比如字段不断改变,每次都要从文件从新读取就只能使用PreparedStatement对象来实现。再有就是存在即合理,既然PreparedStatement对象可以多次高效地执行预编译的语句,就一定有其原因(JDk源码没有分析过,和Statement实现的区别不了解)。
3,实现批量插入数据库数据
- Class.forName("com.mysql.jdbc.Driver");
- Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://" +
- "localhost:3306/excel2mysql", "wanle", "wanle");
-
- con.setAutoCommit(false);
-
- SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SS");
- TimeZone t = sdf.getTimeZone();
- t.setRawOffset(0);
- sdf.setTimeZone(t);
- Long startTime = System.currentTimeMillis();
-
- PreparedStatement pst = (PreparedStatement) con.prepareStatement("insert into test04 values (?,'中国')");
- for (int i = 0; i < 10000; i++) {
- pst.setInt(1, i);
-
- pst.addBatch();
- }
-
- pst.executeBatch();
-
- con.commit();
-
- Long endTime = System.currentTimeMillis();
- System.out.println("用时:" + sdf.format(new Date(endTime - startTime)));
-
- pst.close();
- con.close();
Class.forName("com.mysql.jdbc.Driver");
Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://" +
"localhost:3306/excel2mysql", "wanle", "wanle");
// 关闭事务自动提交
con.setAutoCommit(false);
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SS");
TimeZone t = sdf.getTimeZone();
t.setRawOffset(0);
sdf.setTimeZone(t);
Long startTime = System.currentTimeMillis();
PreparedStatement pst = (PreparedStatement) con.prepareStatement("insert into test04 values (?,'中国')");
for (int i = 0; i < 10000; i++) {
pst.setInt(1, i);
// 把一个SQL命令加入命令列表
pst.addBatch();
}
// 执行批量更新
pst.executeBatch();
// 语句执行完毕,提交本事务
con.commit();
Long endTime = System.currentTimeMillis();
System.out.println("用时:" + sdf.format(new Date(endTime - startTime)));
pst.close();
con.close();
插入10000条数据用时3141毫秒,对于我已经很理想了, 毕竟我们不会使用MySQL进行非常大型项目的开发,对于10000条数据3秒多点,已经可以了,我相信对于大家应该也足以应付了,我们不会每天都插入10000条吧,当然对于我的话如果有这样的需求,我不会选择MySQL。
以上所有内容均为对于我所学习使用过程中、实际项目开发中的总结,也应用于其中。对于批量插入,数据导入均采用这样的方式。
分享到:
相关推荐
本文中提供了一个完整的示例代码,演示了Java实现批量向mysql写入数据的方法,包括JDBC连接mysql数据库、批量向mysql写入数据和基本的异常处理等操作。该示例代码可以作为Java程序设计的参考,帮助读者更好地理解...
只要学我一样编写这么一个工具类便可以实现批量插入多条数据,百条,千条,万条,后期还会继续优化增加数据时的速度!有点代码基础的保证能看懂,此项目已经有了前端界面你可以直接的导入然后运行测试既可以了,表...
6. **执行SQL**:使用`Statement`或`PreparedStatement`执行SQL语句,批量插入数据。为提高效率,可以使用批处理(batch processing),将多条SQL语句打包一起执行。 7. **错误处理**:在执行过程中捕获并处理可能...
本文将探讨Mybatis和JDBC在批量插入MySQL数据库时的性能差异,并提供相关的测试资源。 首先,JDBC(Java Database Connectivity)是Java平台中用于与数据库交互的一种规范,它允许程序员使用SQL语句直接操作数据库...
8. **批量操作**: 为了提高效率,通常会使用批量插入或更新操作,而不是一条一条地处理数据。这样可以减少网络延迟和数据库交互次数。 9. **异常处理**: 在处理数据库操作时,必须考虑到可能出现的异常,如连接错误...
本项目"java实现Excel数据导入到mysql数据库"旨在利用Java技术将Excel表格中的数据高效地导入到MySQL数据库,并且在数据库中存在相同数据时进行更新,同时也支持将数据库中的数据导出到Excel表中。这个过程涉及到多...
批量插入数据 如果我们需要插入大量数据,可以使用批量插入方式来提高效率。我们可以使用 `addBatch()` 方法将多个插入语句添加到批量中,然后使用 `executeBatch()` 方法执行批量插入操作。 优化插入性能 为了...
在Java开发中,常常会遇到需要将一系列数据插入数据库的需求。但在实际操作过程中,为了避免重复数据的插入,我们需要实现一种机制来判断待插入的数据是否已存在于数据库中。这不仅可以提高数据的准确性,还能有效...
java快速插入千万级数据,亲测91秒插入1700万数据!!!
* 灵活:Java 连接 MySQL 数据库实现单条插入和批量插入可以灵活地处理不同的数据操作,满足不同的业务需求。 结论 Java 连接 MySQL 数据库实现单条插入和批量插入是 Java 编程语言中的一种常见操作。通过使用 ...
本篇文章详细介绍了如何利用JSON数据批量操作数据库(插入、更新),包括JSON数据的解析、数据库的连接与操作以及异常处理等方面的知识点。通过这些知识点的学习,读者可以更好地理解和应用相关的技术,在实际项目...
在本项目中,我们主要探讨的是如何利用SpringBoot集成Mybatis框架进行大数据量(例如500万条)的批量插入操作,并将其高效地存入MySQL数据库。这个Demo旨在提供一个学习实例,帮助开发者理解并优化大数据处理的性能...
此外,为了提高效率,可以考虑使用批量插入,即一次提交多条插入语句,减少网络交互和数据库的开销。同时,确保在迁移过程中正确处理主键和外键约束,避免数据不一致。 在实际操作中,可能还会遇到如字符集转换、...
在本文中,我们提供了一个完整的Java实现代码,展示了JDBC连接MySQL数据库批量插入数据的过程详解。该代码使用FastJSON库读取本地JSON数据,然后使用JDBC连接MySQL数据库批量插入数据。 六、结论 本文详细介绍了...
综上所述,Java使用JDBC进行批量插入数据是通过PreparedStatement的批处理功能实现的,通过设置手动提交和优化连接字符串,以及合理控制批量处理的大小和选择合适的数据库配置,可以有效地提高插入10万条或更多数据...
在Java编程中,调用数据库存储过程是一种常见的操作,特别是在处理复杂的业务逻辑或者批量数据操作时。本篇文章将深入探讨如何使用Java与MySQL数据库进行交互,实现调用存储过程,并提供一个测试通过的实例。 首先...
**批量插入**主要用于数据导入和日志记录等场景。例如,在日志系统中,通常会将日志信息先写入到文件中,然后再定期批量导入到数据库中进行存储和分析。下面详细介绍JDBC批量插入的具体实现方式: 1. **使用...
4. 批量插入:将Excel数据分批插入到数据库,提高效率。 5. 提交事务:确保所有更改都成功提交到数据库。 6. 关闭连接:操作完成后,记得关闭数据库连接。 反之,从MySQL数据库导出数据到Excel则涉及以下步骤: 1....
本教程将详述如何使用Apache POI库读取Excel数据,并通过Java的JDBC接口批量插入到MySQL数据库中。Apache POI是Java平台上的一个开源项目,它允许程序员创建、修改和显示Microsoft Office格式的文件,其中包括Excel...
本主题将详细讲解如何使用Spring JDBC Template访问MySQL数据库并进行批量插入数据的操作。 首先,我们需要在项目中引入Spring框架的相关依赖,通常包括`spring-context`和`spring-jdbc`。这些可以在Maven或Gradle...