日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Mybatis傳入參數類型不匹配導致的報錯:

作者:小哥騎單車 更新時間: 2022-11-29 編程語言

1、先來看錯誤異常:

com.cfc.common.utils.TranFailException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'bussNo' in 'class java.lang.String'-->nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'bussNo' in 'class java.lang.String'
?? ?at com.cfc.common.utils.LogUtil$HanderExVo.invoke(LogUtil.java:412)
?? ?at com.cfc.common.utils.LogUtil.handerEx(LogUtil.java:319)
?? ?at com.cfc.common.utils.LogUtil.handerEx(LogUtil.java:280)
?? ?at com.cfc.common.utils.LogUtil.handerEx(LogUtil.java:257)
?? ?at com.cfc.common.utils.LogUtil.handerEx(LogUtil.java:245)

2、代碼實現:

對應的java中,是string類型:

?

然后mybatis的xml中,是map類型:

?

3、報錯的地方:

然后mybatis的xml中執行的代碼:

?

?

?如果不更改java代碼中String->Map類型,

我發現去掉if? test 標簽,也可以正常執行:

4、當然,正確的修改方式,還是要把傳參類型匹配對應上:

?

或者在mybatis中,修改對應的

parameterType="map" 

parameterType="java.lang.String"

至于原理,要去看mybatis里面的反射源碼了:

?org.apache.ibatis.reflection.Reflector

?

這里也是由于不小心犯了一個低級錯誤:?

?

原文鏈接:https://blog.csdn.net/lejustdoit/article/details/120156769

欄目分類
最近更新