如何解决使用 Spring 和 Kotlin 检查来自 JdbcTemplate 的可为空的列
在我使用 Kotlin 的 Spring 应用程序中,我正在读取一个包含许多可为空列的 sql 表。对于可为空的列,我使用这个 if 表达式:
if (rs.getObject("ordernumber") != null) rs.getInt("ordernumber") else null
有没有比为每个可空列编写 if 表达式更简单的方法?
我已将示例简化为一个可空列,但当然我还有更多可空列,包括字符串、整数、时间戳等。
fun getEmployeePayRecord(employee: Employee): List<EmployeePayRecord> {
val rowMapper: RowMapper<EmployeePayRecord> = RowMapper { rs,_ ->
EmployeePayRecord(
uuid = rs.getString("uuid"),workingDay = rs.getTimestamp("working_day").toLocalDateTime(),orderNumber = if (rs.getObject("ordernumber") != null) rs.getInt("ordernumber") else null
)
}
return jdbcTemplate.query(
"""select uuid,working_day,ordernumber
from plrv11.employee_pay_record
where employee_number = :employeeNumber
order by working_day
""",rowMapper,employee.employeeNumber
).toList()
}
编辑
我采纳了 M. Deinum 和 David 的想法并添加了扩展功能,如下所示:
fun ResultSet.getIntOrNull(columnName: String): Int? {
val result = getInt(columnName)
return if (wasNull()) null else result
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。