問題描述:
在使用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。這時候,我們需要將返回來的記錄數進行判斷,就可以確保該記錄在數據庫中的唯一性了。