java - 无法从 H2 数据库获得结果

标签 java h2 h2db

我试图从 h2 db 中获取值,但总是出现此错误

 org.h2.jdbc.JdbcSQLException: No data is available [2000-171]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
    at org.h2.message.DbException.get(DbException.java:169)
    at org.h2.message.DbException.get(DbException.java:146)
    at org.h2.message.DbException.get(DbException.java:135)
    at org.h2.jdbc.JdbcResultSet.checkOnValidRow(JdbcResultSet.java:2956)
    at org.h2.jdbc.JdbcResultSet.get(JdbcResultSet.java:2962)
    at org.h2.jdbc.JdbcResultSet.getInt(JdbcResultSet.java:306)

我用谷歌搜索了一个答案

Make sure to call rs.next(); prior to using any of the getter methods.

但我调用 rs.next() ...

这是我的代码:

public User getUser(int userId) throws SQLException {
    User u = new User(userId);

    try {
        Statement st = conn.createStatement();
        ResultSet rs = st.executeQuery("SELECT * FROM invited_users WHERE user_id=" + userId);
        rs.next();

        u.setName(rs.getString("user_name"));

    } catch (SQLException except) {
        JOptionPane.showMessageDialog(null, "Unable to load user! " + except);
    }
    return u;
}

最佳答案

问题出在结果集中,它是空的。

只需替换这段代码

rs.next();

u.setName(rs.getString("user_name"));

if (rs.next()) {
    u.setName(rs.getString("user_name"));
}

关于java - 无法从 H2 数据库获得结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26905227/

相关文章:

java - 如何从文本文件中提取数字

java - 如何使 JButton 在同一目录中运行可执行文件?

java - 无法将 H2 DB 与 Hibernate 连接

java - NetBeans 11.0 使用来自 Maven 的源而不是其他开放项目

sql - 这个的sql查询是什么?

java - 表 "SYS": h2 database fails while inserting multiple records 中的并发更新

java - JdbcSQLSyntaxErrorException 未找到架构

java - @Cacheable 与内存数据库?

java - H2 数据库 'Chunk no longer exists' 错误

java - 关于 JPQL 的困惑