1. 程式人生 > >Mybatis中selectOne的空指標異常

Mybatis中selectOne的空指標異常

selectOne呼叫了selectList方法,當selectList方法返回值的size小於1 的時候,selectOne方法會返回null值。我們再來看一下mybatis的xml. 

如果你寫了resultType為Integer,然後在業務程式碼中很自然的用一個變數int去接當前這個方法的返回值:

int id = dao.methodName(param);如果按照你傳入的條件在資料庫中沒有找到相關的值,此時selectOne方法的返回值會是一個null,當你使用Java的自動拆箱機制的時候會報出一個無情的NPE。

原因:Java在自動拆箱的時候會呼叫Integer類中的intValue方法,如果當前物件為null,則丟擲NPE。

所以我們在使用mybatis的這個selectOne方法的時候一定要多加小心。不要踩到坑裡。