2012-09-12 289 views
0

我在我的搜索过程中使用Spring NamedParameterJdbcTemplate,但是当我得到很多结果时,它的执行需要几次,我不知道是否有方法来优化它。 这里我的代码:NamedParameterJdbcTemplate非常慢

NamedParameterJdbcTemplate jt = new NamedParameterJdbcTemplate(dataSource); 
StringBuilder sb = new StringBuilder(query); 
query = sb.toString(); 
return jt.query(query, map, new MyRowMapper()); 

你有什么想法吗?

谢谢大家!

回答

1

你可以做的事情很少
1.为什么每次调用方法时创建实例NamedParameterJdbcTemplate?创建一次并将以前创建的实例传递给该方法。

NamedParameterJdbcTemplate jt = new NamedParameterJdbcTemplate(dataSource); 

保留NamedParameterJdbcTemplate作为类属性并初始化一次。
2.你在这里尝试什么?

StringBuilder sb = new StringBuilder(query); 
query = sb.toString(); 

query通行证直接.query()方法如果String类型。
3.在MyRowMapper的内部,请确保您只在mapRow方法中提取和分配必填字段。这可能会影响执行时间,因为结果集中的每条记录都会调用mapRow一次。

+0

是的,StringBuilder ...在这里是一个额外的代码。 – Mohamed

+0

我只能调用这个方法一次 – Mohamed

+0

@Mohamed:那么你必须看看你的rowMapper。如果你只在'mapRow'方法中使用必需的字段,那么我不认为你可以用你的代码做更多的事情。 – xyz