接着昨天的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 }
View Code

相关文章: