接着昨天的Mybatis扩展——IDaoTemplate接口。
扩展9:批量执行
1、明确什么是批量执行
首先说明一下,这里的批量执行不是利用<foreach>标签生成一长串的sql字符串——这并不是真正的JDBC批量执行,我这里所说的批量是指在内核调用JDBC的addBatch、executeBatch等方法来实现的。类似下面的示例:
1 private void batchUpdate(Connection conn) throws SQLException { 2 PreparedStatement ps = null; 3 try{ 4 String sql = " INSERT INTO BF_PARAM_ENUM_DATA " 5 + " (PARAM_CODE,DATA_CODE,DATA_TEXT,DATA_PARAM,SEQNO,DES) " 6 + " VALUES(?,?,?,?,?,?) "; 7 ps = conn.prepareStatement(sql); 8 for(int i = 0; i < 10; i++){ 9 String random = RandomStringUtils.randomAlphabetic(8); 10 ps.setString(1, "TEST");//PARAM_CODE 11 ps.setString(2, random);//DATA_CODE 12 ps.setString(3, "数据" + random);//DATA_TEXT 13 ps.setString(4, "参数" + random);//DATA_PARAM 14 ps.setInt(5, i);//SEQNO 15 ps.setString(6, "");//MEMO 16 ps.addBatch(); 17 } 18 int[] rs = ps.executeBatch(); 19 System.out.print("batch insert : "); 20 for(int r : rs){ 21 System.out.print(r+","); 22 } 23 System.out.println(); 24 }finally{ 25 try{ 26 ps.close(); 27 }catch(Exception e){} 28 } 29 }