2012-06-12 2 views
1

Я выполняю один запрос выбора с использованием шаблона Springjdbc и возвращает около 1000 идентификаторов в качестве набора. но это занимает 10 минут времени для исполнения с использованием шаблона Spring jdbc. , но в Toad, тот же запрос выполняется в секундах.Springjdbc шаблон выбор выполнения запроса занимает много времени

Может ли кто-нибудь помочь мне в этом отношении?

и я использую ниже код:

return (HashSet)this.jdbcTemplate.query(
    (String) sqlMap.get("SQL_NRChargePromoApIDList"), new Object[] { }, new DataMapperAPID()); 

public Object mapRow(ResultSet rs, int rowNum) throws SQLException { 
     HashSet compList = new HashSet();   
     compList.add(rs.getString("ap_id")); 
     while(rs.next()){ 
      compList.add(rs.getString("ap_id")); 
     } 
     return compList; 
     } 
+0

может ли кто-нибудь разместить ответ PLS – suresh

+0

На самом деле не достаточно информации для продолжения. Профилируйте приложение Java, чтобы узнать, где время идет? –

+0

return (HashSet) this.jdbcTemplate.query ((String) sqlMap.get ("SQL_NRChargePromoApIDList"), новый объект [] {}, новый DataMapperAPID()); thisstatement занимает 10 минут времени, даже я добавил жестко закодированные значения в запросе, но тот же запрос выполняет Toad за считанные секунды. – suresh

ответ

1

Вам не нужно называть rs.next(), как весь смысл RowMapper, который вы передаете, чтобы JdbcTemplate.query(), что она будет автоматически перебирать по все строки в наборе результатов и вставьте отображаемый объект в список, который он затем вернет. блок mapper должен просто извлечь app_id, а затем вернуть его. По завершении вы получите список.

Смежные вопросы