博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java jdbc向数据库插入大量数据
阅读量:6836 次
发布时间:2019-06-26

本文共 1908 字,大约阅读时间需要 6 分钟。

1899942 ,新疆-乌鲁木齐

1899944 ,新疆-哈密
1899946 ,新疆-吐鲁番
1899948 ,新疆-塔城
1899950 ,新疆-克拉玛依
1899952 ,新疆-克拉玛依
1899954 ,新疆-昌吉
1899956 ,新疆-昌吉
1899958 ,新疆-伊犁
1899960 ,新疆-库尔勒
1899962 ,新疆-库尔勒
1899964 ,新疆-喀什
1899966 ,新疆-阿克苏
1899968 ,新疆-哈密
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
有几万条这样的数据需要插入数据库

public class Main { public static void main(String[] args) throws Exception{ String sql = "insert into mobile_place(number,place) values(?,?)"; int count = 0;//计数器 Connection conn = JDBCUtil.getConnection(); PreparedStatement pstmt = conn.prepareStatement(sql); try { InputStreamReader is = new InputStreamReader(new FileInputStream(new File("D:/CC.txt")),"utf-8"); BufferedReader br = new BufferedReader(is); while(br.readLine() != null){ conn.setAutoCommit(false);//设置数据手动提交,自己管理事务 count++;//没读取一行数据,计数器+1 String str = br.readLine().toString().trim();//读取一行数据 String s1 = str.substring(0, str.indexOf(","));//取逗号以前的一段 String s2 = str.substring(str.indexOf(",")+1,str.length());//取逗号之后的一段 pstmt.setString(1, s1); pstmt.setString(2, s2); pstmt.addBatch();//用PreparedStatement的批量处理 if(count%500==0){
//当增加了500个批处理的时候再提交 pstmt.executeBatch();//执行批处理 conn.commit();//提交 conn.close();//关闭数据库 conn = JDBCUtil.getConnection();//重新获取一次连接 conn.setAutoCommit(false); pstmt = conn.prepareStatement(sql); } System.out.println("已插入"+count+"条数据"); } if(count%500!=0){
//while循环外的判断,为了防止上面判断后剩下最后少于500条的数据没有被插入到数据库 pstmt.executeBatch(); conn.commit(); } pstmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } } 500可以自己增大,执行效率很高。比单挑执行再插入快多了 getConnection()为获取数据库连接 public static Connection getConnection(){ try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { conn = DriverManager.getConnection(url, userName, password); } catch (SQLException e) { e.printStackTrace(); } return conn; }

 

转载于:https://www.cnblogs.com/zhengchubin/archive/2012/09/23/2698733.html

你可能感兴趣的文章
Guava之FluentIterable使用示例
查看>>
rsync源目录写法的一点小细节
查看>>
错误处理:java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter
查看>>
Django rest_framework 认证源码流程
查看>>
Vue计算属性和监听属性
查看>>
前端代码相关规范
查看>>
jquery的基本api
查看>>
Android 追加写入文件的三种方法
查看>>
python基础训练题2-元组,字典
查看>>
UEFI和GPT下硬盘克隆后的BCD引导修复
查看>>
使用 C#/.NET Core 实现单体设计模式
查看>>
SpringCloud系列十二:SpringCloudSleuth(SpringCloudSleuth 简介、SpringCloudSleuth 基本配置、数据采集)...
查看>>
面试小结之Elasticsearch篇
查看>>
go/golang init()方法的调用
查看>>
[转]ASP.NET 核心模块配置参考
查看>>
话说文件系统——aufs源码分析(三)【转】
查看>>
日志切割之Logrotate
查看>>
Echarts 简单报表系列二:折线图
查看>>
PowerDesigner连接SqlServer数据库导出表结构
查看>>
layer.js 弹窗组件API文档
查看>>