我正在阅读现有的私有项目代码,但我不了解一些关于SQL查询的Kotlin代码。
以下是DAO声明:
interface UserMapper {
@Select("SELECT userId, phoneNumber FROM users WHERE phoneNumber=#{number} LIMIT 1")
fun getUserByPhoneNumber(number: String?): User
}
User
的定义如下:
public class User {
private int userId;
private String phoneNumber;
}
然后我将其称为:
val user = userMapper!!.getUserByPhoneNumber(phonenumber)
if (user != null) {
doSomething()
} else {
doOtherthing()
}
第一个问题是关于函数getUserByPhoneNumber
,它只是返回User对象吗?
第二个是关于构建警告:
[WARNING] Condition 'user != null' is always 'true'
如何在查询数据库中不存在的用户时如何解决此问题?
[更新]:
答案 0 :(得分:2)
第一个问题是关于函数getUserByPhoneNumber,它只是返回User对象吗?
是getUserByPhoneNumber
只返回一个对象。实际上这取决于你的Select query
。
第二个是关于构建警告
您将从User
返回getUserByPhoneNumber
不可空的内容,而您正在检查null
,这就是此警告的原因。
要删除警告,只需将?
添加到返回类型User
,如下所示:
interface UserMapper {
@Select("SELECT userId, phoneNumber FROM users WHERE phoneNumber=#{number} LIMIT 1")
fun getUserByPhoneNumber(number: String?): User?
}
希望它有所帮助。如果您还有其他问题,请与我们联系。