尝试了解Kotlin中的SQL查询,以便在数据库查询返回空集合时返回空值

我正在阅读一个现有的私人项目代码,但我不明白一些关于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 ,它是否简单地返回用户对象?

第二个是关于构建警告:

 [WARNING] Condition 'user != null' is always 'true' 

在查询数据库中不存在的用户时,如何解决这个问题?

[更新]:

这是UserMappingUserMapping mybatis-spring的用法,参考文档在这里和这里

第一个问题是关于函数getUserByPhoneNumber,它是否简单地返回用户对象?

是的getUserByPhoneNumber返回一个对象。 其实这取决于你的Select query

第二个是关于构建警告

您从getUserByPhoneNumber返回的User不能为null ,而您正在检查null ,这是此警告的原因。

要删除警告只是添加? 到返回types的User如下所示:

 interface UserMapper { @Select("SELECT userId, phoneNumber FROM users WHERE phoneNumber=#{number} LIMIT 1") fun getUserByPhoneNumber(number: String?): User? } 

希望能帮助到你。 让我知道你是否有进一步的问题。