1. 程式人生 > >牽一髮而動全身 Parameter Maps collection does not contain value for java.util.HashMap 如何坑爹的

牽一髮而動全身 Parameter Maps collection does not contain value for java.util.HashMap 如何坑爹的

今天開發專案,費了不少勁終於寫好整套BUG,滿心歡喜的去測試,然後啟動tomcat,正常,開啟網站登入,Boom,炸的一臉懵逼,竟然登入不上去了,趕緊看控制檯,發現報了這個錯 Parameter Maps collection does not contain value for java.util.HashMap

看了報錯位置在登入部分的程式碼裡,二話不說就去找bug,一圈下來啥問題沒發現,回頭重新登入,還是炸了,當時就生無可戀了。

懵逼2分鐘之後,突然醒悟,md老子就沒動過登入的程式碼好吧,咋可能這裡出錯,大腦迅速開啟回放模式,考慮一下我都動了哪些程式碼,最後確認是剛寫好的那段bug(果然是bug),話說那個xml裡面的sql是我一行行手敲的,出問題的可能性非常大,請看我寫的bug:

//這是我寫的bug
<select id="getFanInfoList" parameterMap="java.util.LinkedHashMap" 
						resultMap="java.util.LinkedHashMap">

。。。

<select/>



//這是我改正後的bug
<select id="getFanInfoList" parameterType="java.util.LinkedHashMap" 
						resultType="java.util.LinkedHashMap">

。。。

<select/>

最終確認 是 用錯了 parameterMap ,應該使用 parameterType,當然,還有resultMap == 》 resultType(如果你定義的有resultMap請忽略)

最後終於把彎掉的bug給掰直了,收工。

總結一點就是,xml裡面出現這個問題,是會導致整個專案的xml(sql檔案)不可用,所以,當遇到這個問題的時候,不能盲目相信控制檯上列印的錯誤資訊,他知識告訴你有這個錯,至於是不是這個位置,他是不會告訴你的,呵呵

少年,我看你骨骼清奇,是萬中無一的奇才,不要走,我要把我畢生寫bug的功力傳授給你,以後寫遍天下bug的重任就交給你了

PS:圖是我借的(讀書人的事,怎麼能說是盜)