在循环内有DB调用的替代方法吗?

时间:2014-01-27 07:09:09

标签: java database performance for-loop

由于for循环中有数千个数据库调用,我遇到了性能问题。 有什么出路吗?

for( String cacheKey : moduleCacheMap.keySet() )
    {
        if( inputCachekey != null && inputCachekey.equalsIgnoreCase( cacheKey ) )
        {
            CacheItemDto cacheItemDto = moduleCacheMap.get( cacheKey ) ;
            cacheList = cacheDao.getCacheList( cacheItemDto ) ;
        }
    }

此处cacheDao.getCacheList每次都会触发一个新的数据库事务。

1 个答案:

答案 0 :(得分:1)

1)在单个查询中获取所有需要的行而不是循环,或

2)如果您不需要立即获取所有数据,请进行延迟加载cacheList。