我正在从数据库中选择,我想确保是否需要检查RowSet
是否为空。我需要做一个简单的if
声明还是可以离开它?
那么这就够了吗?
//RowSet rs = (...)
try {
rs.next()
//process data
} catch (SQLException e) {
}
还是我必须像这样在其中放置一个 if 语句:
//RowSet rs = (...)
try {
if (rs.next()) {
//process data
}
} catch (SQLException e) {
}
即使RowSet
是空的还是只是在关闭时,rs.next()
也会抛出SQLException
吗?提问的另一种方式:行集为空时是否关闭?
虽然这不能回答你的问题...我想问你为什么不使用JdbcTemplate
的内置转换/映射功能。Spring 为您抽象了大部分 ResultSet 打开、迭代、关闭操作,以便您可以专注于将数据映射到对象。您可以使用RowMapper
的实现,它为您提供了一个mapRow(ResultSet rs, int rowNum)
方法,并且可以将每一行映射到一个对象。如果没有行返回,则永远不会执行映射器。每个映射的结果都会进入一个列表,因此如果没有行,那么您的列表将为空。
List<MyType> rowsFromDatabaseMapped = jdbcTemplate.query(SQL_STR, new Object[]{any_params}, new MyTypeMapper());