使用mybatis,寫了這樣一行代碼:
<when test="id == '1'">
AND id = '1'
</when>
結果運行時報出異常:
Caused by: java.lang.NumberFormatException: For input string: "1"
很明顯這個異常時數字格式化異常,因爲數據表中id字段的類型爲varchar(2),實體類中id類型爲String,所以開始沒有感覺哪裏出了問題。後來在網上查找,終於找到原因:
原來'1'在這裏被認爲了時char類型,而不是String類型,這是OGNL的語法問題。
更改方法:
①把test="id='1'"改成test='id="1"'
②把'1'改成其他字符串,如'111'
經過測試,通過上述方法修改代碼之後,不再報錯。