开发者社区> 问答> 正文

用了红薯大哥的EhCache缓存代码,调试后出错,各位大侠能否给一个些建议?? 400 报错

用了红薯大哥的EhCache缓存代码,调试后出错,各位大侠能否给一个些建议?? 400 报错

用了红薯大哥的EhCache缓存代码,调试后出错,各位大侠能否给一个些建议?

用了QueryHelper中的query_cache

 /**
  * 支持缓存的对象查询
  * @param <T>
  * @param beanClass
  * @param cache_region
  * @param key  (Serializable) result
  * @param sql
  * @param params
  * @return
  */
 public static <T> List<T> query_cache(Class<T> beanClass, String cache_region, Serializable key, String sql, Object...params) {  
  List<T> objs = (List<T>)CacheManager.get(cache_region, key);
  if(objs == null){
   objs = query(beanClass, sql, params);
   CacheManager.set(cache_region, key, (Serializable)objs);
  }
  return objs;
 }

调试以下代码

 public static void FindAlljsonArray() throws Exception {
  // 查询条件
  String sql = "select Id,MenuName from Menu where Id!=?";
  Object[] params = new Object[] {0};
   String key="MenuCachekey";
  List<Menu> results = null;
  results = (ArrayList<Menu>) QueryHelper.query_cache(Menu.class,"reginon1",(Serializable) key,sql, params);
  JSONArray jsonArray = JSONArray.fromObject(results);
  System.out.println(jsonArray);
  results = null;
  jsonArray.clear();
 }

结果显示是

java.lang.NullPointerException
 at cache.EhCacheProvider.buildCache(EhCacheProvider.java:34)
 at cache.EhCacheProvider.buildCache(EhCacheProvider.java:1)
 at cache.CacheManager._GetCache(CacheManager.java:35)
 at cache.CacheManager.get(CacheManager.java:46)
 at DBPool.QueryHelper.query_cache(QueryHelper.java:137)
 at dao.DBtest.FindAlljsonArray(DBtest.java:30)

到底是哪里出了问题呢?
 

 

展开
收起
优选2 2020-06-05 16:37:01 574 0
1 条回答
写回答
取消 提交回答
  • 红薯大哥能否给一些提示呢??######缓存没有初始化,oschina的一些类只是提供一个参考思路,不要直接使用
    ######恩,知道,现在只是往这缓存这方面的初级学习,所以只有先拿来做一下调试,然后学习参考你的思路######@JavaHouse  QueryHelper这个类能贴下吗?######到代码分享里搜索一下######这个类站内里面有######thx######

    可以参考一下我之前弄的例子:
    http://www.blogjava.net/paulwong/archive/2012/02/16/370119.html

    2020-06-05 16:37:21
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
基于英特尔 SSD 的虚拟机缓存解决SSD 立即下载
用户态高速块缓存方案 立即下载
高性能Web架构之缓存体系 立即下载