婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 使用JDBC在MySQL數(shù)據(jù)庫中如何快速批量插入數(shù)據(jù)

使用JDBC在MySQL數(shù)據(jù)庫中如何快速批量插入數(shù)據(jù)

熱門標(biāo)簽:安陽手機(jī)自動外呼系統(tǒng)原理是什么 神行者百貨商場地圖標(biāo)注 地圖標(biāo)注百度競價 地圖標(biāo)注什么軟件好用 如何辦理400客服電話 外呼系統(tǒng)線路經(jīng)常出問題嗎 外呼系統(tǒng)怎樣才能不封號 地圖標(biāo)注專員入駐 西藏地圖標(biāo)注改進(jìn)點(diǎn)

使用JDBC連接MySQL數(shù)據(jù)庫進(jìn)行數(shù)據(jù)插入的時候,特別是大批量數(shù)據(jù)連續(xù)插入(10W+),如何提高效率呢?

在JDBC編程接口中Statement 有兩個方法特別值得注意:

void addBatch() throws SQLException

Adds a set of parameters to this PreparedStatement object's batch of commands.

int[] executeBatch() throws SQLException

Submits a batch of commands to the database for execution and if all commands execute successfully, returns an array of update counts. The int elements of the array that is returned are ordered to correspond to the commands in the batch, which are ordered according to the order in which they were added to the batch.

通過使用addBatch()和executeBatch()這一對方法可以實(shí)現(xiàn)批量處理數(shù)據(jù)。

不過值得注意的是,首先需要在數(shù)據(jù)庫鏈接中設(shè)置手動提交,connection.setAutoCommit(false),然后在執(zhí)行Statement之后執(zhí)行connection.commit()。

package cyl.demo.ipsearcher; 
 
import java.io.BufferedReader; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.SQLException; 
 
public class DbStoreHelper { 
 
  private String insert_sql; 
  private String charset; 
  private boolean debug; 
 
  private String connectStr; 
  private String username; 
  private String password; 
 
  public DbStoreHelper() { 
    connectStr = "jdbc:mysql://localhost:3306/db_ip"; 
    // connectStr += "?useServerPrepStmts=falserewriteBatchedStatements=true"; 
    insert_sql = "INSERT INTO tb_ipinfos (iplong1,iplong2,ipstr1,ipstr2,ipdesc) VALUES (?,?,?,?,?)"; 
    charset = "gbk"; 
    debug = true; 
    username = "root"; 
    password = "***"; 
  } 
 
  public void storeToDb(String srcFile) throws IOException { 
    BufferedReader bfr = new BufferedReader(new InputStreamReader(new FileInputStream(srcFile), charset)); 
    try { 
      doStore(bfr); 
    } catch (Exception e) { 
      e.printStackTrace(); 
    } finally { 
      bfr.close(); 
    } 
  } 
 
  private void doStore(BufferedReader bfr) throws ClassNotFoundException, SQLException, IOException { 
    Class.forName("com.mysql.jdbc.Driver"); 
    Connection conn = DriverManager.getConnection(connectStr, username,password); 
    conn.setAutoCommit(false); // 設(shè)置手動提交 
    int count = 0; 
    PreparedStatement psts = conn.prepareStatement(insert_sql); 
    String line = null; 
    while (null != (line = bfr.readLine())) { 
      String[] infos = line.split(";"); 
      if (infos.length  5)  continue; 
      if (debug) { 
        System.out.println(line); 
      } 
      psts.setLong(1, Long.valueOf(infos[0])); 
      psts.setLong(2, Long.valueOf(infos[1])); 
      psts.setString(3, infos[2]); 
      psts.setString(4, infos[3]); 
      psts.setString(5, infos[4]); 
      psts.addBatch();     // 加入批量處理 
      count++;       
    } 
    psts.executeBatch(); // 執(zhí)行批量處理 
    conn.commit(); // 提交 
    System.out.println("All down : " + count); 
    conn.close(); 
  } 
 
} 

執(zhí)行完成以后:

All down : 103498 
Convert finished. 
All spend time/s : 47 

一共10W+,執(zhí)行時間一共花費(fèi) 47 秒.

這個效率仍然不高,似乎沒有達(dá)到想要的效果,需要進(jìn)一步改進(jìn)。

在MySQL JDBC連接字符串中還可以加入?yún)?shù),

rewriteBatchedStatements=true,mysql默認(rèn)關(guān)閉了batch處理,通過此參數(shù)進(jìn)行打開,這個參數(shù)可以重寫向數(shù)據(jù)庫提交的SQL語句。

useServerPrepStmts=false,如果不開啟(useServerPrepStmts=false),使用com.mysql.jdbc.PreparedStatement進(jìn)行本地SQL拼裝,最后送到db上就是已經(jīng)替換了?后的最終SQL.

在此稍加改進(jìn),連接字符串中加入下面語句(代碼構(gòu)造方法中去掉注釋):
connectStr += "?useServerPrepStmts=falserewriteBatchedStatements=true";

再次執(zhí)行如下:

All down : 103498 
Convert finished. 
All spend time/s : 10 

同樣的數(shù)據(jù)量,這次執(zhí)行只花費(fèi)了10秒 ,處理效率大大提高.

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • JDBC連接MySQL數(shù)據(jù)庫批量插入數(shù)據(jù)過程詳解
  • JDBC連接MySql數(shù)據(jù)庫步驟 以及查詢、插入、刪除、更新等
  • java中JDBC實(shí)現(xiàn)往MySQL插入百萬級數(shù)據(jù)的實(shí)例代碼
  • Java使用JDBC向MySQL數(shù)據(jù)庫批次插入10W條數(shù)據(jù)(測試效率)
  • Java使用JDBC或MyBatis框架向Oracle中插入XMLType數(shù)據(jù)
  • java實(shí)現(xiàn)jdbc批量插入數(shù)據(jù)
  • JDBC鏈接mysql插入數(shù)據(jù)后顯示問號的原因及解決辦法
  • JDBC插入數(shù)據(jù)返回數(shù)據(jù)主鍵代碼實(shí)例

標(biāo)簽:貴港 阜陽 萍鄉(xiāng) 雞西 衡水 酒泉 張掖 AXB

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用JDBC在MySQL數(shù)據(jù)庫中如何快速批量插入數(shù)據(jù)》,本文關(guān)鍵詞  使用,JDBC,在,MySQL,數(shù)據(jù)庫,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《使用JDBC在MySQL數(shù)據(jù)庫中如何快速批量插入數(shù)據(jù)》相關(guān)的同類信息!
  • 本頁收集關(guān)于使用JDBC在MySQL數(shù)據(jù)庫中如何快速批量插入數(shù)據(jù)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    青青青伊人色综合久久| 国产成人亚洲精品青草天美| 欧美tickling网站挠脚心| 色欧美日韩亚洲| 欧美视频在线播放| 欧美另类变人与禽xxxxx| 日韩欧美国产三级| 2020国产精品自拍| 久久久午夜电影| 亚洲三级在线观看| 蜜桃视频一区二区| 国产在线精品不卡| 99精品国产热久久91蜜凸| 欧美在线小视频| 久久亚区不卡日本| 亚洲天堂精品视频| 视频在线观看一区| 国产伦精品一区二区三区免费 | 精品人伦一区二区色婷婷| 久久综合色天天久久综合图片| 久久精品夜色噜噜亚洲aⅴ| 一区二区三区欧美久久| 国产精品一区2区| 欧美日韩综合在线免费观看| 久久免费午夜影院| 亚洲在线免费播放| 国产精品资源站在线| 欧美在线观看一区二区| 欧美国产禁国产网站cc| 黄网站免费久久| 欧洲一区在线观看| 亚洲日本韩国一区| 99re66热这里只有精品3直播| 精品不卡在线视频| 麻豆久久久久久久| 日韩精品在线一区| 日韩专区在线视频| 欧美一区三区四区| 美国十次了思思久久精品导航| 欧美自拍偷拍一区| 五月激情丁香一区二区三区| 91精品久久久久久久久99蜜臂| 亚洲香肠在线观看| 欧美老肥妇做.爰bbww视频| 亚洲午夜久久久| 在线视频一区二区免费| 日本vs亚洲vs韩国一区三区| 日韩三级高清在线| 成人小视频在线| 一区二区三区四区av| 欧美一区二区三区啪啪| 国产成人精品免费| 亚洲欧美一区二区久久| 欧美一区二区在线播放| 成人免费va视频| 美女任你摸久久| 亚洲女同女同女同女同女同69| 欧美一区二区三区人| 不卡在线视频中文字幕| 午夜精品久久久久久| 国产亚洲精品免费| 欧美视频完全免费看| 成人app下载| 懂色av一区二区夜夜嗨| 日韩影院免费视频| 亚洲第一会所有码转帖| 综合久久综合久久| 国产精品青草综合久久久久99| 91精品欧美久久久久久动漫 | 国产精品久久久久久久久免费桃花| 色视频一区二区| 日本高清免费不卡视频| 欧美在线观看视频在线| jvid福利写真一区二区三区| 国产一区不卡在线| 成人一区二区三区视频在线观看| 免费精品视频在线| 韩国三级在线一区| 国产·精品毛片| 91精品1区2区| 91影院在线免费观看| 午夜精品久久久久久久久久| 亚洲第四色夜色| 另类调教123区| 激情成人综合网| 国产.欧美.日韩| 色av成人天堂桃色av| 欧美高清视频一二三区 | 国产欧美精品区一区二区三区| 精品久久一二三区| 亚洲男女一区二区三区| 首页欧美精品中文字幕| 国产成人精品一区二区三区网站观看| 99久久精品国产网站| 欧美日韩一本到| 国产精品毛片a∨一区二区三区| **网站欧美大片在线观看| 免费一级欧美片在线观看| 成人妖精视频yjsp地址| 欧美一区二区三区日韩| 亚洲欧美在线高清| 国产激情一区二区三区四区| 欧美日韩一区二区三区四区五区| 国产情人综合久久777777| 性感美女久久精品| 欧美视频一区二区三区四区| 久久精品一区二区三区四区| 男男视频亚洲欧美| 在线不卡中文字幕| 亚洲图片一区二区| 欧美综合在线视频| 亚洲一二三区视频在线观看| 色综合久久综合中文综合网| 国产精品私房写真福利视频| 丁香激情综合国产| 国产三级久久久| 成人激情小说乱人伦| 中文字幕第一页久久| 成人免费精品视频| 成人欧美一区二区三区在线播放| 高清国产一区二区三区| 国产精品久久久久久久久免费丝袜 | 欧美性受xxxx黑人xyx性爽| 自拍偷自拍亚洲精品播放| 91国内精品野花午夜精品| 午夜私人影院久久久久| 久久久久久电影| 色婷婷综合视频在线观看| 亚洲一区二区三区四区在线观看 | 欧美福利视频一区| 蜜桃一区二区三区在线观看| 欧美国产综合色视频| 在线亚洲一区二区| 国产精品亚洲成人| 亚欧色一区w666天堂| 中文字幕日韩精品一区| 欧美久久久一区| 色香蕉成人二区免费| 国产麻豆欧美日韩一区| 日韩av电影天堂| 亚洲综合视频在线| 亚洲综合在线电影| 国产精品久久久久一区| 久久久精品国产免费观看同学| 欧美一区二视频| 不卡的av在线播放| 欧美aaaaaa午夜精品| 日韩电影免费一区| 日韩激情在线观看| 蜜臀av性久久久久蜜臀av麻豆| 久久久久国产精品麻豆ai换脸 | 日韩小视频在线观看专区| 欧美中文字幕一区| 日韩午夜av电影| 久久久久久久网| 国产精品每日更新| 中文字幕五月欧美| 亚洲国产精品人人做人人爽| 亚洲一区成人在线| 久久精品99久久久| 成人动漫中文字幕| 欧美一区二区三区性视频| 久久视频一区二区| 亚洲欧洲三级电影| 日本一不卡视频| 99久久精品99国产精品| 7777精品伊人久久久大香线蕉| 亚洲精品一区二区三区四区高清| 国产精品毛片久久久久久| 美女诱惑一区二区| 色综合婷婷久久| 91精品国产综合久久久久久久久久| 国产精品入口麻豆九色| 青青草一区二区三区| 欧美日韩在线三级| www亚洲一区| 久久久久国产精品厨房| 一区二区三区不卡在线观看| 日本va欧美va精品发布| 欧美三级电影在线看| 亚洲欧美二区三区| 成人激情午夜影院| 国产精品国产三级国产三级人妇 | 国产综合色视频| 欧美另类高清zo欧美| 偷拍自拍另类欧美| 欧美日韩午夜在线视频| 一区二区在线免费观看| 一本高清dvd不卡在线观看| 亚洲欧美一区二区三区久本道91| 日韩精品一级中文字幕精品视频免费观看 | 中文字幕av在线一区二区三区| 黄色成人免费在线| 久久久久久99久久久精品网站| 国产乱国产乱300精品| 久久久久久久电影| 色域天天综合网| 亚洲第一福利视频在线| 日韩一级高清毛片| 国产v日产∨综合v精品视频|