文章目錄
- 批處理 介紹
- 批處理的模板代碼
- 批處理在 JDBC 中的應用
批處理 介紹
Java 的批處理機制可以一次性執行多條 SQL 陳述式,效率更高。減少網路流量,速度更快。
通過調用方法 addBatch 可以批量執行此列表中的命令。
調用executeBatch()批量執行sql。
sql通常是insert 【插入】或 update 【更新】或 delete 【刪除】操作。
批處理的模板代碼
try {stmt = conn.createStatement();stmt.addBatch("insert into …."); stmt.addBatch("update B ….");stmt.executeBatch(); //執行批處理} catch (Exception e) {e1.printStackTrace();} finally {factory.close(null, stmt, conn);}
批處理在 JDBC 中的應用
如下方法可以批量執行多條非查詢類 SQL 陳述式,可以協助我們在 Java 更快捷進行資料庫的處理工作。
方法的傳回值為一個 int 類型的數組,該數組用於判斷 SQL 陳述式是否執行成功。(返回 1 則證明執行成功)
/** 批處理:批量執行SQL語句 */public int[] BatchTest(String[] sqlArr) {int arr[] = null;getConnection();try {statement = connection.createStatement();if (sqlArr!=null && sqlArr.length>0) {for (int i = 0; i < sqlArr.length; i++) {statement.addBatch(sqlArr[i]);}}arr = statement.executeBatch();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {close();}return arr;}
運用範例
//批處理的應用JDBC_BaseDAO jDemo1 = new JDBC_BaseDAO();String[] sqls = new String[10];sqls[0]="insert into t_userr(username,password) values('s141f','123');";sqls[1]="insert into t_userr(username,password) values('sg412sf','22352');";sqls[2]="insert into t_userr(username,password) values('sd124f','325');";sqls[3]="INSERT INTO t_userr(username,password,sex) values('1jj','11','n');";sqls[4]="insert into t_userr(username,password) values('s234d14f','6252');";sqls[5]="UPDATE t_userr SET ruxueYear='2000',home='浙江杭州' WHERE username='1jj';";int[] arr = jDemo1.BatchTest(sqls);for(int a:arr){System.out.println(a);}
在以上代碼中,運用了一個自行定義的 方法close()
代碼如下
/** 關閉並釋放資源 */public void close(){try {if(statement!=null){statement.close();statement = null;}if(pStatement!=null){pStatement.close();pStatement = null;}if(connection!=null){connection.close();connection = null;}} catch (Exception e) {System.out.println("資料庫close異常");}}