成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

使用JDBC連接MySQL數(shù)據(jù)庫并實現(xiàn)批量插入數(shù)據(jù)

今天就跟大家聊聊有關使用JDBC連接MySQL數(shù)據(jù)庫并實現(xiàn)批量插入數(shù)據(jù),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都做網(wǎng)站、成都網(wǎng)站制作、溫宿網(wǎng)絡推廣、微信小程序、溫宿網(wǎng)絡營銷、溫宿企業(yè)策劃、溫宿品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供溫宿建站搭建服務,24小時服務熱線:13518219792,官方網(wǎng)址:jinyejixie.com

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

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

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實現(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ù)庫
  void jdbcConnBatch(Map<Integer, JSONObject> map){
    try{
      //1.注冊驅動
      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.獲得預處理對象
      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語句占位符設置實際參數(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;

看完上述內(nèi)容,你們對使用JDBC連接MySQL數(shù)據(jù)庫并實現(xiàn)批量插入數(shù)據(jù)有進一步的了解嗎?如果還想了解更多知識或者相關內(nèi)容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

當前標題:使用JDBC連接MySQL數(shù)據(jù)庫并實現(xiàn)批量插入數(shù)據(jù)
鏈接URL:http://jinyejixie.com/article30/jjhppo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站App開發(fā)、小程序開發(fā)、域名注冊、電子商務、服務器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設
湘阴县| 孙吴县| 定西市| 枣强县| 揭阳市| 平顺县| 昌黎县| 忻城县| 斗六市| 呼图壁县| 武穴市| 营山县| 兴隆县| 昌江| 澄城县| 霍城县| 自贡市| 利川市| 上虞市| 伊春市| 大渡口区| 忻城县| 固安县| 屏山县| 乌拉特中旗| 泽州县| 鄂州市| 贵德县| 鞍山市| 建宁县| 靖西县| 久治县| 定州市| 建昌县| 和龙市| 蕉岭县| 雷波县| 万源市| 镇平县| 南康市| 遂昌县|