我有一个Set<String> catNames
包含大量猫名(~35K)的列表,我需要从数据库(Sybase)中加载所有这些Cat
对象并将它们放入Map<String, Cat> cats
:每行包含猫名和相应的猫对象。
知道我正在使用 OJB 1.4(它加载对象Cat
及其所有依赖项,如Food
... Clothes
),这是加载如此庞大的猫列表的更好方法吗?
解决方案 1:每个 catName 一次访问数据库
cat = getCatByName(catName);
然后cats.put(catName, cat);
和return cats;
解决方案 2:对所有这些猫名的数据库进行一次访问
cats = getCatsByNames(catNames);
然后
for (Iterator iterator = cats.iterator(); iterator.hasNext();) {
cat = (Cat)iterator.next();
cats.put(cat.getName(), cat);
}
和return cats;
PS: getCatsByNames
用途criteria.addIn("catName", catNames);