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

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

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

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

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

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

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.

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

不過(guò)值得注意的是,首先需要在數(shù)據(jù)庫(kù)鏈接中設(shè)置手動(dòng)提交,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è)置手動(dòng)提交 
    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í)行時(shí)間一共花費(fèi) 47 秒.

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

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

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

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

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

再次執(zhí)行如下:

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

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

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

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

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用JDBC在MySQL數(shù)據(jù)庫(kù)中如何快速批量插入數(shù)據(jù)》,本文關(guān)鍵詞  使用,JDBC,在,MySQL,數(shù)據(jù)庫(kù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《使用JDBC在MySQL數(shù)據(jù)庫(kù)中如何快速批量插入數(shù)據(jù)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于使用JDBC在MySQL數(shù)據(jù)庫(kù)中如何快速批量插入數(shù)據(jù)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩av二区在线播放| 日韩欧美成人一区二区| 91精品久久久久久蜜臀| 亚洲欧美一区二区三区极速播放| 亚洲美女一区二区三区| 国产成人啪免费观看软件| 日韩一区二区三区四区五区六区| 亚洲国产日日夜夜| 欧美精品九九99久久| 亚洲图片自拍偷拍| 欧美一区二区视频在线观看2022| 日韩精品免费专区| 精品久久久久一区| 国产盗摄一区二区三区| 国产精品久久久久久久久快鸭| 成人免费高清在线| 亚洲最大成人网4388xx| 在线成人午夜影院| 国产精品资源在线看| 最新不卡av在线| 欧美高清精品3d| 青青草视频一区| 国产精品无人区| 91激情在线视频| 美洲天堂一区二卡三卡四卡视频| 国产亚洲1区2区3区| 91久久国产最好的精华液| 黄色日韩网站视频| 亚洲视频 欧洲视频| 日韩欧美一级二级三级| 97精品电影院| 激情国产一区二区| 亚洲精品国产无套在线观| 宅男噜噜噜66一区二区66| 懂色中文一区二区在线播放| 一区二区三区在线免费播放 | 色婷婷久久一区二区三区麻豆| 亚洲影视在线播放| 久久久欧美精品sm网站| 欧美制服丝袜第一页| 国产精一品亚洲二区在线视频| 夜夜爽夜夜爽精品视频| 久久夜色精品一区| 69堂成人精品免费视频| 色先锋aa成人| 不卡欧美aaaaa| 国产裸体歌舞团一区二区| 一区二区三区日韩精品| 国产精品蜜臀在线观看| 精品国产免费久久| 7777精品伊人久久久大香线蕉超级流畅| 国产成a人无v码亚洲福利| 强制捆绑调教一区二区| 亚洲国产精品精华液网站| 国产精品三级电影| 久久久久国产成人精品亚洲午夜 | 一本大道综合伊人精品热热| 国产呦萝稀缺另类资源| 免费日本视频一区| 天天免费综合色| 一区二区三区国产| 亚洲视频一区在线| 亚洲色图第一区| 亚洲精品日韩综合观看成人91| 欧美极品少妇xxxxⅹ高跟鞋| 久久久亚洲午夜电影| 2020国产成人综合网| 精品处破学生在线二十三| 精品国产免费人成电影在线观看四季 | 美国精品在线观看| 日韩国产欧美在线播放| 亚洲成年人网站在线观看| 亚洲第一综合色| 天天免费综合色| 久久成人18免费观看| 青青草精品视频| 精品一区二区成人精品| 国产精品一区不卡| aaa国产一区| 欧美在线色视频| 日韩午夜在线观看视频| 久久久久久亚洲综合| 久久综合九色欧美综合狠狠 | 国产黄色成人av| 粉嫩高潮美女一区二区三区| 色综合天天综合在线视频| 色狠狠综合天天综合综合| 国产91精品露脸国语对白| 成人高清在线视频| 成人av资源在线观看| 精品视频一区 二区 三区| 日本乱人伦aⅴ精品| 欧美撒尿777hd撒尿| 久久蜜桃香蕉精品一区二区三区| 久久精品欧美日韩精品| 国产精品视频yy9299一区| 一区二区欧美在线观看| 亚洲综合久久久久| 日韩黄色小视频| 国产白丝网站精品污在线入口| 色天使色偷偷av一区二区| 欧美精品vⅰdeose4hd| 国产午夜精品久久久久久久| 亚洲精品免费在线播放| 蜜臀av性久久久久蜜臀aⅴ | 亚洲精品国产第一综合99久久| 日韩黄色片在线观看| 麻豆一区二区99久久久久| 91欧美一区二区| 精品福利在线导航| 亚洲国产视频在线| 99精品国产99久久久久久白柏| 日韩欧美在线不卡| 亚洲成年人影院| 94-欧美-setu| 国产精品日日摸夜夜摸av| 久久精品国产99| 欧美久久久久久久久| 国产精品久久久久久久久免费樱桃 | jizz一区二区| 日韩欧美一卡二卡| 性感美女极品91精品| 成人听书哪个软件好| 欧美成人精精品一区二区频| 亚洲a一区二区| 在线观看视频一区| 亚洲视频免费看| 国产91在线观看丝袜| 91精品国产综合久久精品性色| 亚洲欧美在线高清| 成人免费福利片| 国产拍欧美日韩视频二区| 久久99国产精品尤物| 日韩色在线观看| 久久精品二区亚洲w码| 91精品国产免费| 免费成人在线视频观看| 日韩一区二区中文字幕| 亚洲精品国产无天堂网2021| 色综合久久中文综合久久97 | 欧美激情自拍偷拍| 国产成人精品免费视频网站| 久久综合九色综合久久久精品综合| 免费高清在线一区| 久久网站热最新地址| 国产高清一区日本| 国产精品午夜春色av| 91免费在线看| 婷婷国产v国产偷v亚洲高清| 欧美一区二区视频网站| 激情综合五月天| 国产精品无码永久免费888| 国产精品一区不卡| 久久精品日产第一区二区三区高清版| 国产最新精品精品你懂的| 国产亚洲精品超碰| 一本大道久久a久久综合婷婷 | 日韩码欧中文字| 色综合久久综合网欧美综合网| 亚洲国产美女搞黄色| 欧美疯狂性受xxxxx喷水图片| 麻豆国产精品官网| 国产视频一区二区在线观看| 99re这里都是精品| 首页国产丝袜综合| 国产色一区二区| bt7086福利一区国产| 午夜免费欧美电影| 国产午夜久久久久| 欧美色网站导航| 国产一区二区三区四区在线观看| 久久久噜噜噜久噜久久综合| 91美女片黄在线| 久久99精品久久久久| 一区二区中文字幕在线| 91精品国产综合久久国产大片| 国产酒店精品激情| 亚洲免费电影在线| 2023国产精品视频| 欧美久久一二区| 99视频一区二区| 狠狠色狠狠色综合系列| 亚洲美女在线一区| 国产亚洲人成网站| 欧美精品99久久久**| 99久久免费国产| 久久不见久久见中文字幕免费| 最新不卡av在线| 久久久亚洲午夜电影| 欧美一区二区在线视频| 色婷婷精品大在线视频| 狠狠狠色丁香婷婷综合久久五月| 亚洲欧美欧美一区二区三区| 久久久久久久综合| 91精品国产综合久久香蕉的特点 | 成人综合婷婷国产精品久久蜜臀| 亚洲欧美日韩久久| 26uuu精品一区二区在线观看| 色综合久久中文字幕| 韩国精品一区二区|