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

java連接mysql數(shù)據(jù)庫實現(xiàn)單條插入和批量插入

 更新時間:2019年08月30日 10:41:54   作者:靜遠小和尚  
這篇文章主要為大家詳細介紹了java連接mysql數(shù)據(jù)庫實現(xiàn)單條插入和批量插入,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java連接mysql數(shù)據(jù)庫實現(xiàn)單條和批量插入的具體代碼,供大家參考,具體內(nèi)容如下

本文插入數(shù)據(jù)庫的數(shù)據(jù)來源:java + dom4j.jar提取xml文檔內(nèi)容

1、連接數(shù)據(jù)庫

package com.njupt.ymh;
 
import java.sql.DriverManager;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;
 
public class Connect_MySQL {
 
 private static final String URL="jdbc:mysql://127.0.0.1:3306/news"; // 一般默認3306,這里設置成6666 (33060) MYSQL8 WMPNetworkSvc
 private static final String USER="root";
 private static final String PASSWORD="12345";
 private static Connection connection=null;
 
 static{
 //1、加載驅(qū)動程序(反射的方法)
 try {
  Class.forName("com.mysql.jdbc.Driver");
 } catch (ClassNotFoundException e) {
  e.printStackTrace();
 }
 //2、連接數(shù)據(jù)庫
 try {
 connection=(Connection) DriverManager.
   getConnection(URL, USER,PASSWORD);//地址,用戶名,密碼
 } catch (SQLException e) {
  e.printStackTrace();
 }
 }
 public static Connection getConnection(){
 return connection;
 }
 
}

 2、單條插入

package com.njupt.ymh;
/**
 * 單條插入數(shù)據(jù)
 */
 
import java.sql.SQLException;
import java.util.List;
 
import com.mysql.jdbc.Connection;
 
public class OperationPaper {
 
 private static Connection connection=Connect_MySQL.getConnection();
 
 public void addNewsPaper(NewsPaper newsPaper){//增
 // connection = Connect_MySQL.getConnection();
 String sql="insert into papertest (id, date, title, lead_pargraph, full_text) values(?, ?, ?, ?, ?)";
 
  java.sql.PreparedStatement ptmt = null;
  try {
  ptmt = connection.prepareStatement(sql);
  } catch (SQLException e1) {
  e1.printStackTrace();
  }
  
  try {
  ptmt.setLong(1, newsPaper.getID());
  ptmt.setString(2, newsPaper.getDate());
  ptmt.setString(3, newsPaper.getTitle());
  ptmt.setString(4, newsPaper.getLead());
  ptmt.setString(5, newsPaper.getfull());
  ptmt.execute();//執(zhí)行給定的SQL語句,該語句可能返回多個結果
  
  } catch (SQLException e) {
  e.printStackTrace();
  }
 }
 public static void main(String[] args) {
 OperationPaper operationPaper = new OperationPaper();
 List<String> listFile = SearchFile.getAllFile("E:\\huadai\\1996\\07\\21", false); // 文件列表
 
 for (String string : listFile) {  
  NewsPaper newsPaper = new NewsPaper(string);
  if (newsPaper.isUseful()) 
  operationPaper.addNewsPaper(newsPaper); // 插入數(shù)據(jù)庫
 }
 }
 
}

3、批量插入

package com.njupt.ymh;
 
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
 
import com.mysql.jdbc.Connection;
 
public class OperaOnNewsPaper implements Cloneable{
 
private static Connection connection=Connect_MySQL.getConnection();
 
 
 /**
 * 支持批量插入數(shù)據(jù)
 * @param newsPaper
 */
 
 public void addNewsPaper(ArrayList<NewsPaper> listNewsPaper){//增
 String sql="insert into papertest (id, date, title, lead_pargraph, full_text) values(?, ?, ?, ?, ?)";
 java.sql.PreparedStatement ptmt = null;
 
 try {
  connection.setAutoCommit(false);// 關閉事務
  ptmt = connection.prepareStatement(sql);
 
 } catch (SQLException e2) {
  e2.printStackTrace();
 } 
 
 for (NewsPaper paperaper : listNewsPaper) {
  
  try {
  ptmt.setLong(1, paperaper.getID());
  ptmt.setString(2, paperaper.getDate());
  ptmt.setString(3, paperaper.getTitle());
  ptmt.setString(4, paperaper.getLead());
  ptmt.setString(5, paperaper.getfull());
  ptmt.addBatch(); 
  } 
  catch (SQLException e) {
  e.printStackTrace();
  }
 }
 try {
  ptmt.executeBatch();//執(zhí)行給定的SQL語句,該語句可能返回多個結果
  connection.commit();
 } catch (SQLException e) {
  e.printStackTrace();
 }
 }
 
 
 public static void main(String[] args) {
 OperaOnNewsPaper operation = new OperaOnNewsPaper();
 List<String> listFile = SearchFile.getAllFile("E:\\huadai\\2007", false); // 文件列表
 ArrayList<NewsPaper> listPaper = new ArrayList<>();
 int count = 0;
 int sizenum = 1000;
 for (String string : listFile) {
  NewsPaper newsPaper = new NewsPaper(string);
  
  if (newsPaper.isUseful()) {
  count++;
  listPaper.add(newsPaper);  // 新聞列表
  if (count % sizenum == 0) {
   //System.out.println("ok");
   System.out.println("  " + count);
   operation.addNewsPaper(listPaper); //插入數(shù)據(jù)庫
   
   System.out.println(count);
   listPaper.clear();
  }
  } 
 }
 if (count %sizenum != 0) {
  operation.addNewsPaper(listPaper);
  System.out.println("zui hou ");
 } 
 }
}

通過實際測試,大概十萬級數(shù)據(jù)批量插入要不單條插入節(jié)省10分鐘左右時間。因為每次單條插入就要和數(shù)據(jù)庫建立一次連接,進行一次日志更新。但是,如果批量插入過程中,批量的數(shù)據(jù)值有一條不符合格式就將導致本次批量插入整體失敗,因此需要對失敗情況進行處理,或者對批量插入的數(shù)據(jù)進行預處理,保證批量插入能夠成功。

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

相關文章

  • java迭代器中刪除元素的實例操作詳解

    java迭代器中刪除元素的實例操作詳解

    在本篇內(nèi)容里小編給各位分享了一篇關于java迭代器中刪除元素的實例操作詳解內(nèi)容,有興趣的朋友們可以學習下。
    2021-01-01
  • SpringBoot Security實現(xiàn)單點登出并清除所有token

    SpringBoot Security實現(xiàn)單點登出并清除所有token

    Spring Security是一個功能強大且高度可定制的身份驗證和訪問控制框架。提供了完善的認證機制和方法級的授權功能。是一款非常優(yōu)秀的權限管理框架。它的核心是一組過濾器鏈,不同的功能經(jīng)由不同的過濾器
    2023-01-01
  • Java Map.getOrDefault方法詳解

    Java Map.getOrDefault方法詳解

    Map.getOrDefault(Object key, V defaultValue)是Java中Map接口的一個方法,用于獲取指定鍵對應的值,如果鍵不存在,則返回一個默認值,這篇文章主要介紹了Java Map.getOrDefault方法詳解,需要的朋友可以參考下
    2024-01-01
  • SpringCloud Webflux過濾器增加header傳遞方式

    SpringCloud Webflux過濾器增加header傳遞方式

    這篇文章主要介紹了SpringCloud Webflux過濾器增加header傳遞方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Java實現(xiàn)聊天機器人完善版

    Java實現(xiàn)聊天機器人完善版

    這篇文章主要為大家詳細介紹了Java實現(xiàn)聊天機器人完善版,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Java解除文件占用即Dom4j操作后實現(xiàn)xml關流

    Java解除文件占用即Dom4j操作后實現(xiàn)xml關流

    這篇文章主要介紹了Java解除文件占用即Dom4j操作后實現(xiàn)xml關流,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Java初學者入門之繼承和多態(tài)

    Java初學者入門之繼承和多態(tài)

    Java 面向?qū)ο缶幊逃腥筇匦裕悍庋b、繼承、多態(tài),學好繼承和多態(tài)是面向?qū)ο箝_發(fā)語言中非常重要的一個環(huán)節(jié),這篇文章主要給大家介紹了關于Java初學者入門之繼承和多態(tài)的相關資料,需要的朋友可以參考下
    2021-07-07
  • 淺談java中的移動位運算:,>>>

    淺談java中的移動位運算:,>>>

    這篇文章主要介紹了java中的移動位運算:,>>>文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • 利用Java多線程技術導入數(shù)據(jù)到Elasticsearch的方法步驟

    利用Java多線程技術導入數(shù)據(jù)到Elasticsearch的方法步驟

    這篇文章主要介紹了利用Java多線程技術導入數(shù)據(jù)到Elasticsearch的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Springboot接口參數(shù)校驗的方法

    Springboot接口參數(shù)校驗的方法

    在設計接口時我們通常需要對接口中的非法參數(shù)做校驗,以降低在程序運行時因為一些非法參數(shù)而導致程序發(fā)生異常的風險,這篇文章給大家介紹Springboot接口參數(shù)校驗的方法,感興趣的朋友一起看看吧
    2024-03-03

最新評論