mybatis中查詢結(jié)果為空時不同返回類型對應返回值問題
今天在別人的代碼基礎(chǔ)上實現(xiàn)新需求,看到對于mybatis查詢結(jié)果的判斷不是很正確,如果查詢結(jié)果為空就會異常,不知道大家有沒有這樣的疑惑:mybatis中resultType有多種返回類型,對于每種不同類型,查詢結(jié)果為空時dao接口的返回值是一樣的嗎?接下來我就總結(jié)一下常見的幾種情況。
第一種:resultType為基本類型,如string(在此暫且把string歸納為基本類型)
如果select的結(jié)果為空,則dao接口返回結(jié)果為null
第二種,resultType為基本類型,如int
后臺報異常:
org.apache.ibatis.binding.BindingException: Mapper method 'com.fkit.dao.xxDao.getUserById attempted to return null from a method with a primitive return type (int).
解釋:查詢結(jié)果為null,試圖返回null但是方法定義的返回值是int,null轉(zhuǎn)為int時報錯
解決辦法:修改select的返回值為String
第三種 resultType為類為map ,如map、hashmap
dao層接口返回值為null
第四種 resultType 為list ,如list
dao層接口返回值為[],即空集合。
注意:此時判斷查詢是否為空就不能用null做判斷
第五種 resultType 為類 ,如com.fkit.pojo.User
dao層接口返回值null
總結(jié)
以上所述是小編給大家介紹的mybatis中查詢結(jié)果為空時不同返回類型對應返回值問題,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!
相關(guān)文章
Java?Thread.currentThread().getName()?和?this.getName()區(qū)別詳
本文主要介紹了Thread.currentThread().getName()?和?this.getName()區(qū)別詳解,TestThread?testThread?=?new?TestThread();2022-02-02

