ehcache使用举类
以SQL文为Key进行缓存
public static SelectDaoResult execute(DataSource ds, SelectDao selectDao, Object bindValues, ResultSetExtractor extractor, Class clazz) { if (extractor == null) { extractor = new BasicResultSetExtractor(selectDao.getResultTypes(), clazz); } SqlInfo sqlInfo = assembleSql(selectDao, bindValues); String cacheKey = selectDao.getClass().getName(); CacheManager cacheManager; try { cacheManager = CacheManager.getInstance(); } catch (Exception e) { return select(ds, extractor, sqlInfo, cacheKey); } Cache cache = cacheManager.getCache(cacheKey); if (cache == null) { return select(ds, extractor, sqlInfo, cacheKey); } String key = JdbcLogHelper.replace(sqlInfo.getSql(), sqlInfo.getBindValues()); Element element = null; try { element = cache.get(key); } catch (Exception e) { } if (element != null) { return ((SelectDaoResult) element.getValue()); } SelectDaoResult result = select(ds, extractor, sqlInfo, cacheKey); cache.put(new Element(key, result)); return result; }