2013-12-10 45 views
0

我錯誤地實現了調用DAO層的方式嗎? DAO方法中不會觸發斷點,並且異常拋出只會提及NullPointerException.Kindly建議。謝謝Java〜服務層無法調用DAO層並拋出NullPointerException

服務層: 公共類BookServiceImpl {

private static BookServiceImpl myInstance; 
    private BookDAO dao; 

    public static BookServiceImpl getInstance() { 
     if (myInstance == null) { 
      myInstance = new BookServiceImpl(); 
     } 
     return myInstance; 
    } 

    public List<Book> getBookList(BookDTO dto) { 
     return dao.getBookList(dto); 
    } 

} 

DAO層 公共類BookDAO { 私人BookDAO(){ sqlService = Services.get(SqlService.class); }

public static BookDAO getInstance() { 
     if (myInstance == null) { 
      myInstance = new BookDAO(); 
     } 
     return myInstance; 
    } 

} 

回答

1

看起來你從來沒有設定值:

private BookDAO dao; 

BookServiceImpl,導致該行:

return dao.getBookList(dto); 

拋出NPE爲dao爲空。

您需要在訪問它之前實例化它。

+0

ya,你是對的......我忘記了......並且不斷思考發生了什麼......哈哈......無論如何..謝謝兄弟... – Chang

1

BookServiceImpl

private BookDAO dao; // not initialize 

,然後你調用

return dao.getBookList(dto); // here dao is null. 

然後你會得到NullPointerException

+0

ya,你是對的......我忘了它。 ..並不斷思考發生了什麼......哈哈......無論如何..謝謝兄弟... – Chang

+0

@NewbieKC不客氣。 –