无法从H2 db获得结果 [英] Unable to get results from H2 db
本文介绍了无法从H2 db获得结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试从h2 db获取值,但总是收到此错误
I'm trying to get values from h2 db, but always getting this error
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搜索答案
I googled for an answer
确保调用rs.next();在使用任何getter方法之前。
Make sure to call rs.next(); prior to using any of the getter methods.
但我确实调用rs.next()...
But I do call 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;
}
推荐答案
问题出在结果集中,它是空的。
The problem was in resultset, it was empty.
只需替换此代码
rs.next();
u.setName(rs.getString("user_name"));
with
if (rs.next()) {
u.setName(rs.getString("user_name"));
}
这篇关于无法从H2 db获得结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文