国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JDBC批處理

2019-11-09 13:33:59
字體:
來源:轉載
供稿:網友

因業務需要,要對Excel文檔進行解析與入庫,先期寫的代碼是使用poi解析一行入庫一行

后續業務越來越多,解析的excel文檔越發大,導入時間變得很長。

剛開始時是考慮使用異步的方式進行數據入庫,后臺收到了文件直接響應前端,然后開始進行文件的解析入庫。,這里就涉及到一個用戶體驗的問題,因為用戶角度看過去,文檔已經上傳完成。對應的,上傳完成的東西應該已經可用。實際上..............

后來則采用了jdbc批處理來進行操作:

                  
                  Connection conn = null;	          PReparedStatement ps = null;		  //單次處理個數		  int count = 1000;	          try {	              conn = JdbcUtils.getConnection();	              String sql = "insert into user(name,age) values (?, ?) ";	              ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);	              int i = 0;	              for (Object object : list) {	                  ps.setString(1, object.getName());	                  ps.setInt(2, object.getAge());	                  ps.addBatch();	                  i++;			  //防止列表sql太多,出現outOfMemory	                  if(i==count){				  //執行列表中的sql	                	  ps.executeBatch();				  //清空當前sql命令列表	                	  ps.clearBatch();	                	  i=0;	                  }	              }	              if(list.size()<count){	            	  ps.executeBatch();                	  ps.clearBatch();	              }	          } finally {	              關閉各種連接	          }
時間變短,說明效果還是有的。

原理說明:

在大部分的應用當中,最耗時的操作應該是操作數據庫(特殊不計),數據庫操作中最耗時的是建立連接的過程。6000次的插入操作如果不做處理,需要做6000次的數據庫連接操作。如果是批處理,則連接操作個數大大減小,自然速度變快


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴国县| 汉川市| 剑河县| 中牟县| 彰化市| 临漳县| 砚山县| 龙南县| 乌兰县| 赫章县| 盖州市| 定安县| 临朐县| 酒泉市| 沈阳市| 鄂托克前旗| 正蓝旗| 木兰县| 江都市| 安溪县| 淮阳县| 祁东县| 芜湖县| 繁峙县| 望都县| 扬中市| 黔西县| 平邑县| 专栏| 南投市| 巴彦淖尔市| 龙州县| 兴隆县| 东山县| 得荣县| 喀什市| 墨脱县| 桃江县| 长治市| 安阳县| 宁河县|