在我们实际项目开发过程中,可能有的功能在后台需要执行几条sql语句甚至需要批量的执行一些sql语句,如果是循环一条一条执行,我想大家都知道这样做的效率特别低,尤其是批量sql时,但是如果我们先循环把整个的拼成一个以‘;’分割开的sql,然后执行这样的效率提高了不少。

String[] idsArray = addMenuIds.split(","); 

 for (int i = 0; i < idsArray.length; i++) 

 { 

 sql.append("insert into T_USER_MENU(ID_,MENU_ID_,USER_ID_)values(S_USER_MENU.nextval," 

 + Integer.parseInt(idsArray[i]) 

 + "," 

 + Integer.parseInt(userId) 

 + ");"); 

 } 


jdbcDao.execute(sql.toString().split(";")); 


jdbcDao中execute: 

public boolean execute(String[] sql) 

 { 

 try 

 { 

 this.getSimpleJdbcTemplate().getJdbcOperations().batchUpdate(sql); 

 } catch (DataAccessException e) 

 { 

 e.printStackTrace(); 

 return false; 

 } 

 return true; 

 }