JDBC--批量處理

當須要成批插入或者更新記錄時。能夠採用Java的批量更新機制,這一機制容許多條語句一次性提交給數據庫批量處理。一般狀況下比單獨提交處理更有效率。java

JDBC的批量處理語句包括下面兩個方法:sql

  • addBatch():添加須要批量處理的SQL語句或是參數;
  • executeBatch();執行批量處理語句;

 多條SQL語句的批量處理數據庫

一個SQL語句的批量傳參函數

例:學習

@Test
	public void testBatch(){
		Connection connection = null;
		PreparedStatement preparedStatement = null;
		String sql = null;
		
		try {
			connection = JDBCTools.getConnection();
			JDBCTools.beginTx(connection);
			sql = "INSERT INTO customers VALUES(?,?,?)";
			preparedStatement = connection.prepareStatement(sql);
			Date date = new Date(new java.util.Date().getTime());
			
			long begin = System.currentTimeMillis();
			for(int i = 0; i < 100000; i++){
				preparedStatement.setInt(1, i + 1);
				preparedStatement.setString(2, "name_" + i);
				preparedStatement.setDate(3, date);
				
				//"積攢" SQL 
				preparedStatement.addBatch();
				
				//當 "積攢" 到必定程度, 就統一的執行一次. 而且清空先前 "積攢" 的 SQL
				if((i + 1) % 300 == 0){
					preparedStatement.executeBatch();
					preparedStatement.clearBatch();
				}
			}
			
			//若總條數不是批量數值的整數倍, 則還須要再額外的執行一次. 
			if(100000 % 300 != 0){
				preparedStatement.executeBatch();
				preparedStatement.clearBatch();
			}
			
			long end = System.currentTimeMillis();
			
			System.out.println("Time: " + (end - begin)); //569
			
			JDBCTools.commit(connection);
		} catch (Exception e) {
			e.printStackTrace();
			JDBCTools.rollback(connection);
		} finally{
			JDBCTools.releaseDB(null, preparedStatement, connection);
		}
	}

 

 

JDBC學習筆記:.net

1. 獲取數據庫鏈接    http://my.oschina.net/daowuming/blog/704243code

2. 經過Statement執行更新、查詢操做    http://my.oschina.net/daowuming/blog/704384對象

3. 使用PrepareStatement    http://my.oschina.net/daowuming/blog/704432blog

4. 使用ResultSetMetaData 對象處理結果集元數據    http://my.oschina.net/daowuming/blog/704487事務

5. 使用DatabaseMetaData獲取數據庫信息    http://my.oschina.net/daowuming/blog/704553

6. BLOB    http://my.oschina.net/daowuming/blog/704593

7. 處理事務與隔離級別    http://my.oschina.net/daowuming/blog/704611

8. 批量處理    ----當前----

9. 數據庫鏈接池    http://my.oschina.net/daowuming/blog/704700

10. 調用函數與存儲過程    http://my.oschina.net/daowuming/blog/704813

相關文章
相關標籤/搜索