开发者社区> 问答> 正文

用Java代码高效的插入从文件中读取的数据

从文件中读取了大量的数据,怎么批量插入到数据库中?代码如下:

String tableName = "student";
 Connection conn = JDBCUtil.getConnection();
 String sql = "insert into " + tableName + "(Xh,Xm,Bj,Kc,Cj)"
 + "values(?,?,?,?,?)";
 PreparedStatement ps = conn.prepareStatement(sql);


 InputStream is = ReadFile.class.getResourceAsStream("大文件.txt");
 BufferedReader br;
 try {
 br = new BufferedReader(new InputStreamReader(is, "GBK"));
 String s = br.readLine();
 while (s != null) {

 String[] info = s.split(",");
 ps.setString(0, info[0]);
 System.out.println(info[0]+","+info[1]);
 ps.setString(1, info[1]);
 ps.setString(2, info[2]);
 ps.setString(3, info[3]);
 ps.setString(4, info[4]);
 ps.addBatch();
 s = br.readLine();

 ps.executeBatch();
 System.out.println();

展开
收起
爵霸 2016-05-31 10:20:14 2201 0
1 条回答
写回答
取消 提交回答
  • 1.ps.executeBatch();放到循环外面,2.另外如果内存够大,可以将文件存到内存中,Apache 和guava都有相应的api 比如:FileUtils.readLines(new File(path));不过不太推荐3.while循环是单线程的,用java8的foreach可以简单解决,追求高点,还是要写成多线程去解决,想办法吧,期待楼主测试后给予反馈,看看能提升多少

    2019-07-17 19:21:26
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载