Java org.springframework.jdbc.core.jdbccoperations.query(PreparedStatementCreator,ResultsTextRactor)是否可能返回关闭的行集?

Java org.springframework.jdbc.core.jdbccoperations.query(PreparedStatementCreator,ResultsTextRactor)是否可能返回关闭的行集?,java,jdbc,rowset,Java,Jdbc,Rowset,我正在从数据库中选择,我想确定是否需要检查行集是否为空。我是否需要做一个简单的if语句,或者我可以留下它 这够了吗 //RowSet rs = (...) try { rs.next() //process data } catch (SQLException e) { } 或者我必须像这样在里面放一个if语句: //RowSet rs = (...) try { if (rs.next()) {

我正在从数据库中选择,我想确定是否需要检查
行集
是否为空。我是否需要做一个简单的
if
语句,或者我可以留下它

这够了吗

    //RowSet rs = (...)
    try {
        rs.next()
        //process data
    } catch (SQLException e) {

    }
或者我必须像这样在里面放一个if语句:

    //RowSet rs = (...)
    try {
        if (rs.next()) {
            //process data
        }
    } catch (SQLException e) {

    }

rs.next()
是否会抛出
SQLException
,即使
行集
为空或刚刚关闭?另一种提问方式:行集为空时是否关闭?

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

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

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

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

我不明白这个问题。调用
rs.next()
并不是因为结果集可能已关闭,而是为了将结果光标移动到下一行。我不明白这个问题。调用
rs.next()
并不是因为结果集可能已关闭,而是为了将结果光标移动到下一行。是的,这是一个有效点。我想我要这样做。现在这个问题无关紧要,我只是好奇。谢谢。是的,这是一个正确的观点。我想我要这样做。现在这个问题无关紧要,我只是好奇。非常感谢。