mybatis中查詢結(jié)果為空時(shí)不同返回類(lèi)型對(duì)應(yīng)返回值問(wèn)題
今天在別人的代碼基礎(chǔ)上實(shí)現(xiàn)新需求,看到對(duì)于mybatis查詢結(jié)果的判斷不是很正確,如果查詢結(jié)果為空就會(huì)異常,不知道大家有沒(méi)有這樣的疑惑:mybatis中resultType有多種返回類(lèi)型,對(duì)于每種不同類(lèi)型,查詢結(jié)果為空時(shí)dao接口的返回值是一樣的嗎?接下來(lái)我就總結(jié)一下常見(jiàn)的幾種情況。
第一種:resultType為基本類(lèi)型,如string(在此暫且把string歸納為基本類(lèi)型)
如果select的結(jié)果為空,則dao接口返回結(jié)果為null
第二種,resultType為基本類(lèi)型,如int
后臺(tái)報(bào)異常:
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).
解釋?zhuān)翰樵兘Y(jié)果為null,試圖返回null但是方法定義的返回值是int,null轉(zhuǎn)為int時(shí)報(bào)錯(cuò)
解決辦法:修改select的返回值為String
第三種 resultType為類(lèi)為map ,如map、hashmap
dao層接口返回值為null
第四種 resultType 為list ,如list
dao層接口返回值為[],即空集合。
注意:此時(shí)判斷查詢是否為空就不能用null做判斷
第五種 resultType 為類(lèi) ,如com.fkit.pojo.User
dao層接口返回值null
總結(jié)
以上所述是小編給大家介紹的mybatis中查詢結(jié)果為空時(shí)不同返回類(lèi)型對(duì)應(yīng)返回值問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
相關(guān)文章
使用Java實(shí)現(xiàn)5種負(fù)載均衡算法實(shí)例
負(fù)載均衡指由多臺(tái)服務(wù)器以對(duì)稱的方式組成一個(gè)服務(wù)器集合,每臺(tái)服務(wù)器都具有等價(jià)的地位,都可以單獨(dú)對(duì)外提供服務(wù)而無(wú)須其他服務(wù)器的輔助,這篇文章主要給大家介紹了關(guān)于使用Java實(shí)現(xiàn)5種負(fù)載均衡算法的相關(guān)資料,需要的朋友可以參考下2021-09-09IDEA2022.1創(chuàng)建maven項(xiàng)目規(guī)避idea2022新建maven項(xiàng)目卡死無(wú)反應(yīng)問(wèn)題
這篇文章主要介紹了IDEA2022.1創(chuàng)建maven項(xiàng)目規(guī)避idea2022新建maven項(xiàng)目卡死無(wú)反應(yīng)問(wèn)題,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08MyBatisCodeHelperPro最新激活方法(有效方法)
這篇文章主要介紹了MyBatisCodeHelperPro最新激活方法親測(cè)有效,非常好用,小編今天以idea2021.2.1為例給大家詳細(xì)講解,需要的朋友可以參考下2022-08-08Springboot實(shí)現(xiàn)多文件上傳代碼解析
這篇文章主要介紹了Springboot實(shí)現(xiàn)多文件上傳代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04使用注解解決ShardingJdbc不支持復(fù)雜SQL方法
這篇文章主要為大家介紹了使用注解解決ShardingJdbc不支持復(fù)雜SQL方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09