gpt4 book ai didi

java - org.springframework.jdbc.core.JdbcOperations.query(PreparedStatementCreator, ResultSetExtractor) 是否有可能返回封闭的 RowSet?

转载 作者:行者123 更新时间:2023-12-02 01:04:54 24 4
gpt4 key购买 nike

我正在从数据库中进行选择,我想确定是否需要检查 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 ?另一种提问方式:RowSet 为空时是否关闭?

最佳答案

尽管这并不能回答您的问题...我想问您为什么不使用 JdbcTemplate 的内置转换/映射函数。 Spring 为您抽象了大部分 ResultSet 打开、迭代、关闭操作,以便您可以专注于将数据映射到对象。您可以使用 RowMapper 的实现,它为您提供 mapRow(ResultSet rs, int rowNum) 方法,并且您可以将每一行映射到一个对象。如果没有行返回,则映射器永远不会执行。每个映射的结果都会进入一个列表,因此如果没有行,那么您的列表将为空。

List<MyType> rowsFromDatabaseMapped = jdbcTemplate.query(SQL_STR, new Object[]{any_params}, new MyTypeMapper());

关于java - org.springframework.jdbc.core.JdbcOperations.query(PreparedStatementCreator, ResultSetExtractor) 是否有可能返回封闭的 RowSet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60191060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com