欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JDBC連接MySQL數(shù)據(jù)庫(kù)批量插入數(shù)據(jù)過(guò)程詳解

 更新時(shí)間:2019年11月14日 10:55:33   作者:loytime  
這篇文章主要介紹了JDBC連接MySQL數(shù)據(jù)庫(kù)批量插入數(shù)據(jù)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了JDBC連接MySQL數(shù)據(jù)庫(kù)批量插入數(shù)據(jù)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

1.讀取本地json數(shù)據(jù)

2.jdbc理解數(shù)據(jù)庫(kù)

3.批量插入

maven 引入jar包:

<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>fastjson</artifactId>
     <version>1.2.32</version>
   </dependency>
 
   <dependency>
     <groupId>commons-io</groupId>
     <artifactId>commons-io</artifactId>
     <version>2.4</version>
   </dependency>

Java實(shí)現(xiàn)代碼:

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
 
public class Test {
 
  public static void main(String[] args) {
 
    Test test = new Test();
    Map<Integer, JSONObject> map = test.readJsonData();
    test.jdbcConnBatch(map);
 
  }
 
  //批量插入數(shù)據(jù)庫(kù)
  void jdbcConnBatch(Map<Integer, JSONObject> map){
    try{
      //1.注冊(cè)驅(qū)動(dòng)
      Class.forName("com.mysql.cj.jdbc.Driver");
      //2.獲取連接
      Connection con = DriverManager.getConnection(
          "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=no",
          "test", "test");
      String sql = "insert into insurance" +
          "(product_name,country,tag,tag_type,company," +
          "insure_period,observation_period,qzzl,qzbz,qzhm,zjzl," +
          "zjbz,zjqc,jbzmq,tdjb,sg," +
          "jylstd,fhbfgn,gfqz,bzbf0,bzbf30,bzbf40)" +
          " values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
      //3.獲得預(yù)處理對(duì)象
      PreparedStatement pstmt = con.prepareStatement(sql);
      //遍歷map
      for (Map.Entry<Integer, JSONObject> entry : map.entrySet()) {
        String value = entry.getValue().toJSONString();
        JSONObject json = JSONObject.parseObject(value);
        //4.SQL語(yǔ)句占位符設(shè)置實(shí)際參數(shù)
        pstmt = process(pstmt,json);
        pstmt.addBatch();
      }
      //5.執(zhí)行批量操作
      int [] counts = pstmt.executeBatch();
      System.out.println("執(zhí)行條數(shù):"+counts.length);
      //6.釋放資源
      pstmt.close();
      con.close();
    }catch (ClassNotFoundException e) {
      e.printStackTrace();
    }catch(SQLException e){
      e.printStackTrace();
    }
  }
 
 
  /**
   * 讀取文件數(shù)據(jù)加入到map緩存中
   */
  Map<Integer, JSONObject> readJsonData(){
    try{
      Map<Integer, JSONObject> map = new ConcurrentHashMap();
      File testFile = new File("D:\\data.json");
      String jsonString = FileUtils.readFileToString(testFile);
      JSONArray jsonArr = JSONArray.parseArray(jsonString);
      for(int i = 0; i < jsonArr.size(); i++) {
        String str = jsonArr.get(i).toString();
        JSONObject json = JSONObject.parseObject(str);
        map.put(i,json);
      }
      return map;
    } catch (IOException e) {
      e.printStackTrace();
    }
    return null;
  }
 
 
  //處理PreparedStatement數(shù)據(jù)
  PreparedStatement process(PreparedStatement pstmt,JSONObject json ) {
    try {
      pstmt.setString(1,getParameter(json.get("product_name")));
      pstmt.setString(2,getParameter(json.get("country")));
      pstmt.setString(3,getParameter(json.get("tag")));
      pstmt.setString(4,getParameter(json.get("tag_type")));
      pstmt.setString(5,getParameter(json.get("company")));
      pstmt.setString(6,getParameter(json.get("insure_period")));
      pstmt.setString(7,getParameter(json.get("observation_period")));
      pstmt.setString(8,getParameter(json.get("qzzl")));
      pstmt.setString(9,getParameter(json.get("qzbz")));
      pstmt.setString(10,getParameter(json.get("qzhm")));
      pstmt.setString(11,getParameter(json.get("zjzl")));
      pstmt.setString(12,getParameter(json.get("zjbz")));
      pstmt.setString(13,getParameter(json.get("zjqc")));
      pstmt.setString(14,getParameter(json.get("jbzmq")));
      pstmt.setString(15,getParameter(json.get("tdjb")));
      pstmt.setString(16,getParameter(json.get("sg")));
      pstmt.setString(17,getParameter(json.get("jylstd")));
      pstmt.setString(18,getParameter(json.get("fhbfgn")));
      pstmt.setString(19,getParameter(json.get("gfqz")));
      pstmt.setString(20,getParameter(json.get("bzbf0")));
      pstmt.setString(21,getParameter(json.get("bzbf30")));
      pstmt.setString(22,getParameter(json.get("bzbf40")));
      return pstmt;
    }catch (SQLException e) {
      e.printStackTrace();
    }
    return null;
  }
 
 
  String getParameter(Object obj) {
    String str = null;
    str = obj == null ? null : obj.toString();
    return str;
  }
   
}

mysql建表SQL:

CREATE TABLE `insurance` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `product_name` varchar(100) DEFAULT NULL,
 `country` varchar(100) DEFAULT NULL,
 `tag` varchar(100) DEFAULT NULL,
 `tag_type` varchar(100) DEFAULT NULL,
 `company` varchar(100) DEFAULT NULL,
 `insure_period` varchar(100) DEFAULT NULL,
 `observation_period` varchar(100) DEFAULT NULL,
 `qzzl` varchar(100) DEFAULT NULL,
 `qzbz` varchar(100) DEFAULT NULL,
 `qzhm` varchar(100) DEFAULT NULL,
 `zjzl` varchar(100) DEFAULT NULL,
 `zjbz` varchar(100) DEFAULT NULL,
 `zjqc` varchar(100) DEFAULT NULL,
 `jbzmq` varchar(100) DEFAULT NULL,
 `tdjb` varchar(2048) DEFAULT NULL,
 `sg` varchar(2028) DEFAULT NULL,
 `jylstd` varchar(2048) DEFAULT NULL,
 `fhbfgn` varchar(100) DEFAULT NULL,
 `gfqz` varchar(100) DEFAULT NULL,
 `bzbf0` varchar(100) DEFAULT NULL,
 `bzbf30` varchar(100) DEFAULT NULL,
 `bzbf40` varchar(100) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=231 DEFAULT CHARSET=utf8;

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

相關(guān)文章

  • Springboot整合WebSocket實(shí)戰(zhàn)教程

    Springboot整合WebSocket實(shí)戰(zhàn)教程

    WebSocket使得客戶端和服務(wù)器之間的數(shù)據(jù)交換變得更加簡(jiǎn)單,允許服務(wù)端主動(dòng)向客戶端推送數(shù)據(jù),這篇文章主要介紹了Springboot整合WebSocket實(shí)戰(zhàn)教程,需要的朋友可以參考下
    2023-05-05
  • java中不定長(zhǎng)參數(shù)的實(shí)例用法

    java中不定長(zhǎng)參數(shù)的實(shí)例用法

    在本篇文章里小編給大家分享的是關(guān)于java中不定長(zhǎng)參數(shù)的使用方法以及相關(guān)代碼內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2020-02-02
  • java代碼mqtt接收發(fā)送消息方式

    java代碼mqtt接收發(fā)送消息方式

    這篇文章主要介紹了java代碼mqtt接收發(fā)送消息方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • kafka啟動(dòng)報(bào)錯(cuò)(Cluster ID)不匹配問(wèn)題以及解決

    kafka啟動(dòng)報(bào)錯(cuò)(Cluster ID)不匹配問(wèn)題以及解決

    這篇文章主要介紹了kafka啟動(dòng)報(bào)錯(cuò)(Cluster ID)不匹配問(wèn)題以及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Hadoop中的壓縮與解壓縮案例詳解

    Hadoop中的壓縮與解壓縮案例詳解

    壓縮就是通過(guò)某種技術(shù)(算法)把原始文件變下,相應(yīng)的解壓就是把壓縮后的文件變成原始文件,本文給大家分享Hadoop中的壓縮知識(shí),感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • struts2的國(guó)際化實(shí)現(xiàn)網(wǎng)站整體中英文切換實(shí)例代碼

    struts2的國(guó)際化實(shí)現(xiàn)網(wǎng)站整體中英文切換實(shí)例代碼

    本篇文章主要介紹了struts2的國(guó)際化實(shí)現(xiàn)網(wǎng)站整體中英文切換實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • SpringBoot?Test的webEnvironment源碼解讀

    SpringBoot?Test的webEnvironment源碼解讀

    這篇文章主要為大家介紹了SpringBoot?Test的webEnvironment源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Spring AOP的使用詳解

    Spring AOP的使用詳解

    這篇文章主要介紹了Spring AOP的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 關(guān)于Integer.parseInt()方法的使用

    關(guān)于Integer.parseInt()方法的使用

    這篇文章主要介紹了關(guān)于Integer.parseInt()方法的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Spring中的@PropertySource注解源碼詳細(xì)解析

    Spring中的@PropertySource注解源碼詳細(xì)解析

    這篇文章主要介紹了Spring中的@PropertySource注解源碼詳細(xì)解析,@PropertySource注解,標(biāo)注在配置類@Configuration上面,下面主要分析一下@PropertySource注解的處理過(guò)程,也就是怎么把配置信息從.properies文件放到environment中的,需要的朋友可以參考下
    2024-01-01

最新評(píng)論