最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

Java批量插入数据库数据

来源:动视网 责编:小OO 时间:2025-09-26 23:55:16
文档

Java批量插入数据库数据

实现Java批量插入数据库数据,在javaeye中看到过几篇关于实现Java批量插入数据库数据,转载时没有找到,就自己写一下,也算是对自己学习过程中所遇到过的问题做一个总结。一般关于批量向数据库插入数据都采用PreparedStatement、Statement…………也包括直接使用JDBCAPI、框架…………也看到过几篇关于这些内容的总结,及大家的评论,以下为我总结的关于批量向数据库插入数据。 1,使用JDBCAPI实现配量插入数据:有篇文章介绍过关于JDBCAPI、Hibernate实现批
推荐度:
导读实现Java批量插入数据库数据,在javaeye中看到过几篇关于实现Java批量插入数据库数据,转载时没有找到,就自己写一下,也算是对自己学习过程中所遇到过的问题做一个总结。一般关于批量向数据库插入数据都采用PreparedStatement、Statement…………也包括直接使用JDBCAPI、框架…………也看到过几篇关于这些内容的总结,及大家的评论,以下为我总结的关于批量向数据库插入数据。 1,使用JDBCAPI实现配量插入数据:有篇文章介绍过关于JDBCAPI、Hibernate实现批
实现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,实现批量插入数据库数据

 

 

Java代码 

1.Class.forName("com.mysql.jdbc.Driver");   

2.Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://" +   

3.        "localhost:3306/excel2mysql", "wanle", "wanle");   

4.// 关闭事务自动提交   

5.con.setAutoCommit(false);   

6.  

7.SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SS");   

8.TimeZone t = sdf.getTimeZone();   

9.t.setRawOffset(0);   

10.sdf.setTimeZone(t);   

11.Long startTime = System.currentTimeMillis();   

12.  

13.PreparedStatement pst = (PreparedStatement) con.prepareStatement("insert into test04 values (?,'中国')");   

14.for (int i = 0; i < 10000; i++) {   

15.    pst.setInt(1, i);   

16.    // 把一个SQL命令加入命令列表   

17.    pst.addBatch();   

18.}   

19.// 执行批量更新   

20.pst.executeBatch();   

21.// 语句执行完毕,提交本事务   

22.con.commit();   

23.  

24.Long endTime = System.currentTimeMillis();   

25.System.out.println("用时:" + sdf.format(new Date(endTime - startTime)));   

26.  

27.pst.close();   

28.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批量插入数据库数据

实现Java批量插入数据库数据,在javaeye中看到过几篇关于实现Java批量插入数据库数据,转载时没有找到,就自己写一下,也算是对自己学习过程中所遇到过的问题做一个总结。一般关于批量向数据库插入数据都采用PreparedStatement、Statement…………也包括直接使用JDBCAPI、框架…………也看到过几篇关于这些内容的总结,及大家的评论,以下为我总结的关于批量向数据库插入数据。 1,使用JDBCAPI实现配量插入数据:有篇文章介绍过关于JDBCAPI、Hibernate实现批
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top