最近項目中遇到一個bug,正常的流程是這樣的:要上傳一個應用,首先檢查系統中是否已經存在這個應用的更高版本,若是存在,則上傳操做將被取消。sql
bug體現爲當傳入系統中存在的全部應用與新上傳的應用的versioncode都小於10,則上傳可以成功,而當傳入一個versioncode=10的應用時判斷存在更高版本,操做被取消。復現並定位這個問題之後,考慮到對比versioncode處的代碼應該有問題,查看以下:app
mapper.xml裏有這樣一句:spa
and t.versioncode >= #{versioncode}code
這樣轉爲sql後爲:and t.versioncode>= "10",xml
也就是說這裏進行了一次字符串的比較,比較的結果是9>'10'字符串
知道問題的緣由了,bug修改以下:io
and t.versioncode >= ${versioncode}
map
這樣轉爲sql後爲:and t.versioncode>= 10,也就是說這裏進行了一次數字的比較,比較的結果是9<10bug
問題解決了,但願同志們不要再出這樣的bug嘍,查找起來起來好麻煩的。。。項目