MyBatis | 03.用Boolean作为查询的返回值

文章目录

  • 1. 业务场景
  • 2. 原因分析
  • 3. 解决方案

1. 业务场景

我需要实现一个点赞的接口
在 新增点赞记录 之前,需要先查询该用户是否已点赞
如果已点赞,则拒绝 新增点赞记录
因此我需要实现:有数据时返回true,无数据时返回false

则查询方法如下
在这里插入图片描述MyBatis | 03.用Boolean作为查询的返回值_第1张图片
MyBatis会将0和大于0的数字自动解析,
如果是0,则返回false;大于0,则返回true

但是在查询到没有数据时,MyBatis的返回值并不是0,而是null
MyBatis | 03.用Boolean作为查询的返回值_第2张图片

2. 原因分析

MyBatis在没有查询到数据的时候,返回值是null而不是0
因此如果尝试将返回值类型从 Boolean 改成 boolean
是行不通的,null无法被解析成boolean类型。

3. 解决方案

既然MyBatis会将0解析成false,大于0的解析成true
那么使用COUNT( )函数,返回数据的行数,就能实现我的需求
因此对SQL语句作出调整:
MyBatis | 03.用Boolean作为查询的返回值_第3张图片
返回类型依旧是Boolean,经过测试,成功可行。

你可能感兴趣的:(MyBatis,mybatis,数据库,mysql,后端,java)