91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java連接mysql數據庫如何實現單條插入和批量插入

發布時間:2021-10-13 13:59:47 來源:億速云 閱讀:132 作者:柒染 欄目:編程語言

java連接mysql數據庫如何實現單條插入和批量插入,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

1、連接數據庫

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、加載驅動程序(反射的方法) try {  Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) {  e.printStackTrace(); } //2、連接數據庫 try { connection=(Connection) DriverManager.   getConnection(URL, USER,PASSWORD);//地址,用戶名,密碼 } catch (SQLException e) {  e.printStackTrace(); } } public static Connection getConnection(){ return connection; } }

2、單條插入

package com.njupt.ymh;/** * 單條插入數據 */ 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();//執行給定的SQL語句,該語句可能返回多個結果    } catch (SQLException e) {  e.printStackTrace();  } } public static void main(String[] args) { OperationPaper operationPaper = new OperationPaper(); List<String> listFile = SearchFile.getAllFile("E:\\huadai\\1996\7\\21", false); // 文件列表  for (String string : listFile) {    NewsPaper newsPaper = new NewsPaper(string);  if (newsPaper.isUseful())   operationPaper.addNewsPaper(newsPaper); // 插入數據庫 } } }

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();   /** * 支持批量插入數據 * @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();//執行給定的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); //插入數據庫      System.out.println(count);   listPaper.clear();  }  }  } if (count %sizenum != 0) {  operation.addNewsPaper(listPaper);  System.out.println("zui hou "); }  }}

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

看完上述內容,你們掌握java連接mysql數據庫如何實現單條插入和批量插入的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

景宁| 大安市| 沾化县| 沙河市| 九龙坡区| 昌邑市| 巴塘县| 嵊州市| 东山县| 桐庐县| 崇礼县| 临潭县| 乳山市| 平利县| 饶河县| 雷山县| 承德市| 鹰潭市| 柘城县| 镇雄县| 板桥市| 阿合奇县| 宁都县| 濮阳市| 东源县| 彭山县| 福泉市| 乐至县| 崇州市| 项城市| 长汀县| 吴桥县| 兰溪市| 娱乐| 丹寨县| 福鼎市| 辛集市| 云龙县| 永春县| 开江县| 海淀区|