无法从H2 db获得结果

我试图从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)

我google了一个答案

一定要调用rs.next(); 在使用任何getter方法之前。

但我打电话给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")); }