尝试了解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'
在查询数据库中不存在的用户时,如何解决这个问题?
[更新]:
这是UserMapping
和UserMapping
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? }
希望能帮助到你。 让我知道你是否有进一步的问题。