程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> javaweb-麻煩大家幫我看看這個空指針異常應該怎麼改?

javaweb-麻煩大家幫我看看這個空指針異常應該怎麼改?

編輯:編程綜合問答
麻煩大家幫我看看這個空指針異常應該怎麼改?

BaseServiceImpl:

/**
* @param hql:傳入的hql,可以帶?
* @param parameters:問號對應的參數數組
*/
public List getResult(String hql, Object[] parameters) {
// TODO Auto-generated method stub

    Query query = sessionFactory.getCurrentSession().createQuery(hql);
    //注入?
    if(parameters != null && parameters.length > 0){
        for(int i = 0;i < parameters.length;i ++){
            query.setParameter(i, parameters[i]);
        }
    }
    return query.list();
}

ArticleServiceImpl:
public PageBean queryForPage(int userId,int pageSize,int page){

    final String hql = "from Article where users.id=" + userId;
    int allRow = getResult(hql,null).size(); //總記錄數
    int totalPage = PageBean.countTatalPage(pageSize,allRow); //總頁數
    final int offset = PageBean.countOffset(pageSize, page); //當前頁開始記錄
    final int length = pageSize;  //每頁記錄數
    final int currentPage = PageBean.countCurrentPage(page); //當前頁
    List<Article> list = queryForPage(hql,offset,length);

    //把分頁信息保存到bean當中
    PageBean pageBean = new PageBean();
    pageBean.setPageSize(pageSize);
    pageBean.setCurrentPage(currentPage);
    pageBean.setAllRow(allRow);
    pageBean.setTotalPage(totalPage);
    pageBean.setList(list);
    pageBean.init();

    return pageBean;
}

異常信息指示:getResult方法中Query query = sessionFactory.getCurrentSession().createQuery(hql);這句話有問題和ArticleServiceImpl中的int allRow = getResult(hql,null).size(); //總記錄數這句話有問題。
請大家幫我看看這個空指針異常怎麼改?

最佳回答:


如果你不太會打斷點,這樣:
這下面的代碼中,做類似這種事情,類型你自己根據你的情況來定:

T factory = sessionFactory;

//對factory判空...

T session = factory.getCurrentSession();

//對session判空...

T query = session.creatQuery(hql);

//對query判空...
    Query query = sessionFactory.getCurrentSession().createQuery(hql);
    //注入?
    if(parameters != null && parameters.length > 0){
        for(int i = 0;i < parameters.length;i ++){
            query.setParameter(i, parameters[i]);
        }
    }
    return query.list();
}
u011153027
u011153027
gsky1986
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved