mount - t vfat - o iocharset=cp950/dev/sda1/mnt/dos
实现Java批量插入数据库数据,在javaeye中看到过几篇关于实现Java批量插入数据库数据,转载时没有找的到,就自己写一下,也算是对自己学习过程中所遇到过的问题做一个总结。
一般关于批量向数据库插入数据都采用PreparedStatement,声明…………也包括直接使用JDBC API,框架…………
也看到过几篇关于这些内容的总结,及大家的评论,以下为我总结的关于批量向数据库插入数据。
1,使用JDBC API实现配量插入数据:有篇文章介绍过关于JDBC API, Hibernate实现批量插入数据,采用JDBC API方式实现随着数据的增长,速度更胜于冬眠。当然,对于这个测试的准确我并不保证,但是我也会优先选用JDBC API方式实现(原因:简单,易学,相对于框架更通用,不会过时)。
2,采用PreparedStatement对象实现批量插入数据:PreparedStatement是真正的批处理命令,不是其他的伪批处理命令可以相比的(一个人意见),它相对于其他的实现批量处理是非常的强大,比如字段不断改变,每次都要从文件从新读取就只能使用PreparedStatement对象来实现。再有就是存在即合理,既然PreparedStatement对象可以多次高效地执行预编译的语句,就一定有其原因(JDk源码没有分析过,和声明实现的区别不了解)。
3,实现批量插入数据库数据
Java代码 <李> 李> <李> 跨度/> 李> <李> 跨度/> 李> <李> 跨度/> 李> <李> 跨度/> 李> <李/> <李> 跨度/> 李> <李> 李> <李> 跨度/> 李> <李> 李> <李> 李> <李/> <李> 跨度/> 李> <李> 跨度/> 李> <李> 跨度/> 李> <李> 跨度/> 李> <李> 李> <李> 李> <李> 跨度/> 李> <李> 李> <李> 跨度/> 李> <李> 李> <李/> <李> 李> <李> 跨度/> 李> <李/> <李> 李> <李> 李>forname (“com.mysql.jdbc.Driver”); DriverManager连接con=(连接)。getConnection (" jdbc: mysql://? “localhost: 3306/excel2mysql”、“wanle”、“wanle”);//关闭事务自动提交 con.setAutoCommit(假); SimpleDateFormat自卫队=new SimpleDateFormat (“HH: mm: ss: ss”); 时区t=sdf.getTimeZone (); t.setRawOffset (0); sdf.setTimeZone (t); 长时间的开始时间=System.currentTimeMillis (); PreparedStatement pst=(PreparedStatement) con.prepareStatement(“插入test04值(?,’中国”)”); for (int i=0;我<10000;我+ +){ pst。setInt (1,);//把一个SQL命令加入命令列表 pst.addBatch (); }//执行批量更新 pst.executeBatch ();//语句执行完毕,提交本事务 con.commit (); 长endTime=System.currentTimeMillis (); system . out。println(“用时:“+自卫队。格式(新日期(endTime -开始时间))); pst.close (); con.close ();
插入10000条数据用毫时3141秒,对于我已经很理想了,毕竟我们不会使用MySQL进行非常大型项目的开发,对于10000条数据3秒多点,已经可以了,我相信对于大家应该也足以应付了,我们不会每天都插入10000条吧,当然对于我的话如果有这样的需求,我不会选择MySQL。
以上所有内容均为对于我所学习使用过程中,实际项目开发中的总结,也应用于其中。对于批量插入,数据导入均采用这样的方式。
System.getProperties () .list (system . out);
连接康涅狄格州=initConnect2 ();
语句声明=conn.createStatement ();
//sql="插入newsenginedb字符串。ResolveTranslation选择‘身份证’,‘typeId’,‘disciplineId’,‘collectedName’,‘oddsModelObjectId’,‘isApproved’,‘lastUsedDate’,‘注意’,从oddsenginedb 0。ResolveTranslation id=10017444”;
//statement.executeUpdate (sql);
//字符串sql="选择‘身份证’,‘typeId’,‘disciplineId’,‘collectedName’,‘oddsModelObjectId’,‘isApproved’,‘lastUsedDate’,‘注意’,从oddsenginedb 0。ResolveTranslation id=10133053或id=10133053”;//10017444
字符串sql=毖≡瘛癷d”、“类型id”‘disciplineId’,‘collectedName’,‘oddsModelObjectId’,‘isApproved’,‘lastUsedDate’,‘注意’,从oddsenginedb 0。ResolveTranslation限制290”;
ResultSet rs=statement.executeQuery (sql);
字符串aa=皊dfsd 'f”;
aa aa。replaceAll (“”、“”);
System.out.println (aa);
, (rs.next ()) {
字符串id=rs.getString (" id ");
字符串类型id=rs.getString(“类型id”);
字符串disciplineId=rs.getString (“disciplineId”);