分享牛,分享牛原創。有這樣乙個需求,文字檔案中的資料批量的插入mysql
,怎麼用
jdbc
方式批量插入呢?
jdbc預設提供了批量插入的方法,可能用一次就忘記了,這裡做筆記記錄一下
jdbc
批量插入吧。
connection conn = null;
try
//執行
ps.executebatch();
conn.commit();
}catch(exception e)
}
conn.setautocommit(false);
開啟不支援事物,為什麼要開啟這個不支援事物的操作呢?這裡主要是為了提高批量插入的效率,因為如果開啟事物,那麼mysql
批量插入的時候,會產生乙個
log檔案記錄,每一條
insert
產生乙個
log記錄,那這樣其實跟單條
sql的插入基本一樣,所以關閉事務。這樣效能提高可能是量級的提公升。
當sql
非常多的時候,我們可以查詢到
1000
條sql
的時候,就插入到資料庫,這樣保證每次插入的記錄數就是批量插入一定的數量,而不是一次性非常多,**的演變如下:
public static void main(string args)
}//執行剩餘的資料
ps.executebatch();
conn.commit();
}catch(exception e)
分享牛原創(
JDBC批量插入資料
一.直接上源 以匯入課表資料為例 批量插入新申請 匯入預設課表 throws sqlexception catch sqlexception e int number ps.executebatch 把剩餘的資料插入 conn.commit 手動提交事務 try catch sqlexception...
JDBC批量插入資料
批量操作的方式一般有兩種 事務提交方式和批量處理 先將命令的提交方式設為false,即手動提交conn.setautocommit false 最後在所有命令執行完之後再提交事務conn.commit private string url jdbc mysql localhost 3306 test...
jdbc 批量插入優化
專案中有乙個大資料插入的功能是通過jdbc的批處理實現的,但效率一直不理想。最近研究了一下,做如下總結 1 如果id使用的是uuid,一定要保證有序。因為通常資料庫會為主鍵建立聚集索引。而聚集索引是用來指明資料排序規則的。所以,對於非有序的id,插入的同時會做大量的排序操作,很影響效率。另外,我們在...