当在用mybatis连接数据库的时候 想要验证一个值是否存在时出现的问题
在工程中想要验证数据库中t_user表中是否存在相同userId,存在返回true 不存在返回false
那么问题来了
- 数据库SQL中没有boolean类型
- Sql返回值为空的时候mybatis如何去接收数据
mybatis中的代码
<select id="findExistId" parameterType="java.lang.String" resultType="String">
SELECT user_id from t_user WHERE user_id = #{userid}
</select>
User类代码
public class User {
public String userId;
public String userName;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
作为新手第一时间想到的是用User去接再用if去判断,但是用User类如果表中为空会出现空指针异常
这个时候经查阅,发现了一个方法
- 先统计出现的次数
SELECT COUNT(user_id) from t_user WHERE user_id = #{userid}
- 将mybatis的resultType返回值类型修改为boolean
<select id="findExistId" parameterType="java.lang.String" resultType="boolean">
SELECT COUNT(user_id) from t_user WHERE user_id = #{userid}
</select>
(ps:当返回的值>=1时 ,则mybatis会返回true,否则返回false)
至此问题结束