我正在使用Springjdbc模板执行一个选择查询,它作为一组返回近1000个ID。但是使用Spring jdbc模板执行需要10分钟。 但是在Toad中,同样的查询在几秒钟内执行。
任何人都可以帮我解决这个问题吗?
我正在使用下面的代码:
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 :(得分:1)
您不需要调用rs.next()作为传递给JdbcTemplate.query()的RowMapper的整个点,它将自动迭代结果集中的所有行并插入映射的对象进入一个列表,然后它将返回。行映射器应该只提取app_id然后返回它。完成后,您将获得一份清单。