我有一个 ClassA 类,它调用另一个类(DAO)来获取查询结果。在特定的业务场景中,
ClassA 使用查询参数调用 DAO 大约 20,000 次。其中,大约 10,000 次 ClassA 向 DAO 发送相同的查询参数集。显然,Resultset 将是相同的并且可以被缓存。
以下是我实现的代码。
Class A
{
.
.
.
.
Map<String, CachData> cachDataMap= new HashMap<String, CachData>();
priavate void getQueryResults(String queryParam)
{
try {
Set<String> cacheSet = cachDataMap.keySet();
CachData cachData = null;
if(!cacheSet.contains(queryParam))
{
dao.getResuslts((queryParam)));
cachData = new CachData();
cachData.setResult0(__getStringResult(0));
cachData.setResult1(__getStringResult(1));
cachData.setResult2(__getStringResult(2));
cachData.setResult3(__getStringResult(3));
cachData.setResult4(__getStringResult(4));
cachData.setResult5(__getStringResult(5));
cachDataMap.put(queryParam, cachData);
}else
{
cachData = cachDataMap.get(queryParam);
}
} catch(Exception e) {
//handle here
}
}
除了使用任何框架,我们还有其他更好的解决方案吗?更好的数据结构或更好的方法.. 为了获得良好的性能?