我使用SPRING jdbcTemplate使用以下代码从我的数据库中提取一些数据:
jdbctemplate.query(SELECT_SQL_QUERY, new RowCallbackHandler(){
public void processRow(resultsetRS) throws SQLException{
// Some operations here
}
});
当我使用select查询时,我想知道这个方法jdbctemplate.query()
在处理数据之前加载数据库中的所有内容还是一个接一个地加载?
我需要答案,因为我使用了两个SELECT
查询,第二个取决于第一个查询的结果(对所选数据执行的操作的结果),意味着如果第二个调用加载了所有内容在进行任何处理之前,它不会考虑第一次呼叫的最后更改(因为我在我的代码中使用了并列代理)。
答案 0 :(得分:1)
在JDBC中执行的SELECT查询将所有行作为集合返回。
您必须执行第一个查询,然后执行第二个查询。
这是潜伏期导致(n + 1)死亡的原因。
更好的解决方案可能是在一个查询中执行此操作:您只需要一次网络往返。