解決MyBatis返回結果型別為Boolean的問題
阿新 • • 發佈:2020-11-24
問題描述:
在使用MyBatis時,有時需要檢查某個記錄是否存在資料庫中,然後根據其返回的布林值true or false,來進行邏輯判斷。那怎麼做呢?
解決方案:
如檢測某個手機號是否被註冊過:
<select id="checkPhoneExist" parameterType="java.lang.String" resultType="java.lang.Boolean"> <![CDATA[ select count(id) from ec_user where PHONE = #{phone,jdbcType=VARCHAR}]]> </select>
注意事項:
Mybatis是根據查詢到的記錄數進行轉換的(1表示為true,0表示為false) 。然而,如果查詢到多條記錄(大於1),則返回的布林值為false。
這時候,我們需要將返回來的記錄數進行判斷,就可以確保該記錄在資料庫中的唯一性了。
補充知識:Mybatis Mysql布林型別處理
針對mysql資料庫作如下測試,
如果資料庫存的為非0數字,轉換為true,否則為false
如果javaType的Boolean型別值為true,存到資料庫數字為1,false則為0
以上這篇解決MyBatis返回結果型別為Boolean的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。