欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MyBatis查詢(xún)無(wú)記錄時(shí)的返回值問(wèn)題

 更新時(shí)間:2022年01月21日 14:50:33   作者:郝大俠001  
這篇文章主要介紹了MyBatis查詢(xún)無(wú)記錄時(shí)的返回值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

MyBatis查詢(xún)無(wú)記錄的返回值

在MyBatis 3.4.1下

如果Dao的返回值是實(shí)體,則select查詢(xún)無(wú)記錄時(shí)返回null。容易報(bào)空指針異常!

Notice findById();

如果Dao的返回值是List,則select查詢(xún)無(wú)記錄是返回的是[],也就是空數(shù)組,

而不是null。所以這時(shí)候判空需要用CollectionUtils.isNotEmpty(),而不是"==null"

List<Notice> findById();

查詢(xún)無(wú)結(jié)果時(shí)的返回值報(bào)錯(cuò)問(wèn)題

mybatis的查詢(xún)無(wú)結(jié)果時(shí)報(bào)錯(cuò)

(方法名)queryAllNumFromCart attempted to return null from a method with a primitive return type (long)的問(wèn)題

queryAllNumFromCart此方法在mapper.xml中是這樣定義的:

?<select id="queryAllNumFromCart" parameterType="java.lang.Integer" resultType="java.lang.Long">
? ?? ?select sum(num) from t_cart where user_id = #{userId}
? </select>

在mapper中是這樣定義的:

long queryAllNumFromCart(Integer userId); ?//返回值為long類(lèi)型

調(diào)用后運(yùn)行報(bào)錯(cuò):

java.lang.RuntimeException: org.apache.ibatis.binding.BindingException: Mapper method 'com.egoo.mapper.CartMapper.queryAllNumFromCart attempted to return null from a method with a primitive return type (long).
org.apache.ibatis.binding.BindingException: Mapper method 'com.egoo.mapper.CartMapper.queryAllNumFromCart attempted to return null from a method with a primitive return type (long).
    at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:94)
    at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
    at com.sun.proxy.$Proxy16.queryAllNumFromCart(Unknown Source)
    at com.egoo.service.impl.CartServiceImpl.getTotalFromMysql(CartServiceImpl.java:370)
    at com.alibaba.dubbo.common.bytecode.Wrapper2.invokeMethod(Wrapper2.java)
    at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:47)
    at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:76)
    at com.alibaba.dubbo.config.invoker.DelegateProviderMetaDataInvoker.invoke(DelegateProviderMetaDataInvoker.java:52)
    at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:56)
    at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:62)
    ......

主要報(bào)錯(cuò)原因的語(yǔ)句為:

(method)attempted to return null from a method with a primitive return type (long)

此方法企圖從定義了原始的返回類(lèi)型(long)的方法中返回null ,顯而易見(jiàn),此處的返回值類(lèi)型有問(wèn)題。網(wǎng)上搜了之后發(fā)現(xiàn)是mybais的返回值為包裝類(lèi),且sql語(yǔ)句的定義的返回值類(lèi)型為:java.lang.Long。查詢(xún)數(shù)據(jù)庫(kù)為空后,會(huì)返回null而不是0L,所以此處需要將方法的返回值類(lèi)型改為包裝類(lèi)java.lang.Long:

//Long queryAllNumFromCart(Integer userId); ?//當(dāng)查詢(xún)到的數(shù)據(jù)為0條時(shí),會(huì)返回null,而不是0,可以改為包裝類(lèi)

或者在sql語(yǔ)句中加入IFNULL(expr1,expr2)的函數(shù)進(jìn)行判斷:

select IFNULL(sum(num),0) from t_cart where user_id = 1

建議還是使用修改sql語(yǔ)句的方式。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 微信開(kāi)發(fā)準(zhǔn)備第一步 Maven倉(cāng)庫(kù)管理新建WEB項(xiàng)目

    微信開(kāi)發(fā)準(zhǔn)備第一步 Maven倉(cāng)庫(kù)管理新建WEB項(xiàng)目

    這篇文章主要為大家詳細(xì)介紹了微信開(kāi)發(fā)準(zhǔn)備第一步,Maven倉(cāng)庫(kù)管理新建WEB項(xiàng)目,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 基于java中BlockingQueue的使用介紹

    基于java中BlockingQueue的使用介紹

    本篇文章小編為大家介紹,基于java中BlockingQueue的使用介紹。需要的朋友參考下
    2013-04-04
  • SpringMVC整合SSM實(shí)現(xiàn)異常處理器詳解

    SpringMVC整合SSM實(shí)現(xiàn)異常處理器詳解

    SpringMVC是一種基于Java,實(shí)現(xiàn)了Web MVC設(shè)計(jì)模式,請(qǐng)求驅(qū)動(dòng)類(lèi)型的輕量級(jí)Web框架,即使用了MVC架構(gòu)模式的思想,將Web層進(jìn)行職責(zé)解耦。基于請(qǐng)求驅(qū)動(dòng)指的就是使用請(qǐng)求-響應(yīng)模型,框架的目的就是幫助我們簡(jiǎn)化開(kāi)發(fā),SpringMVC也是要簡(jiǎn)化我們?nèi)粘eb開(kāi)發(fā)
    2022-10-10
  • 深入了解Java核心類(lèi)庫(kù)--String類(lèi)

    深入了解Java核心類(lèi)庫(kù)--String類(lèi)

    這篇文章主要為大家詳細(xì)介紹了java String類(lèi)定義與使用的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能給你帶來(lái)幫助
    2021-07-07
  • Java Springboot自動(dòng)裝配原理詳解

    Java Springboot自動(dòng)裝配原理詳解

    這篇文章主要介紹了詳解SpringBoot自動(dòng)配置原理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2021-10-10
  • 詳解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)

    詳解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版)

    本篇文章主要介紹了手把手Maven搭建SpringMVC+Spring+MyBatis框架(超級(jí)詳細(xì)版),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Spring中@Autowired與@Resource的區(qū)別詳析

    Spring中@Autowired與@Resource的區(qū)別詳析

    @Autowired與@Resource都可以用來(lái)裝配bean,都可以寫(xiě)在字段上,或?qū)懺趕etter方法上,下面這篇文章主要給大家介紹了關(guān)于Spring中@Autowired與@Resource區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • 圖解Java經(jīng)典算法快速排序的原理與實(shí)現(xiàn)

    圖解Java經(jīng)典算法快速排序的原理與實(shí)現(xiàn)

    快速排序是基于二分的思想,對(duì)冒泡排序的一種改進(jìn)。主要思想是確立一個(gè)基數(shù),將小于基數(shù)的數(shù)放到基數(shù)左邊,大于基數(shù)的數(shù)字放到基數(shù)的右邊,然后在對(duì)這兩部分進(jìn)一步排序,從而實(shí)現(xiàn)對(duì)數(shù)組的排序
    2022-09-09
  • Spring創(chuàng)建Bean的生命周期詳析

    Spring創(chuàng)建Bean的生命周期詳析

    這篇文章主要介紹了Spring創(chuàng)建Bean的生命周期詳析,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • SpringBoot使用Guava實(shí)現(xiàn)日志脫敏的示例代碼

    SpringBoot使用Guava實(shí)現(xiàn)日志脫敏的示例代碼

    本文主要介紹了SpringBoot使用Guava實(shí)現(xiàn)日志脫敏的示例代碼,使用Guava中的Strings、Maps和CharMatcher類(lèi)來(lái)進(jìn)行日志脫敏,保護(hù)敏感數(shù)據(jù)的安全,感興趣的可以了解一下
    2024-01-01

最新評(píng)論