【发布时间】:2019-12-12 12:21:07
【问题描述】:
我想在我的数据库中的这个代码 sn-p 中返回一个 rs.getInt() 值。我真的需要它,因为我必须在我的 Java Swing 简单测验程序中显示“用户分数”,但它总是返回 0 而不是我想要的。
public int score() {
kon = koneksi.koneksiDb();
try {
st = kon.createStatement();
formLogin fl = new formLogin();
String sql = "SELECT score FROM user WHERE username = '" + fl.usr + "'";
rs = st.executeQuery(sql);
if (rs.next())
return rs.getInt(5);
} catch(SQLException e) {
JOptionPane.showMessageDialog(null, "Maaf, terjadi kesalahan.");
}
return 0;
}
我在数据库中的“分数”列是一个整数。
【问题讨论】:
-
我看到了两种可能性。首先是你没有结果。第二种可能性是你得到了
SQLException。rs.getInt(5)将从结果集中的第五列中获取一个整数,但您的查询只有一个请求的列。这个电话永远不会奏效。 -
试试
return rs.getInt("score");或return rs.getInt(1); -
并测试您的查询实际上是否会返回至少一行。
-
正如@DanielBarbarian 所说,如果 .我看不出你的代码有什么问题。也许,您可能希望将preparedStatement 视为一种好的做法,并且对于预编译的SQL 语句来说更快
-
对不起,我有一段时间没有检查这个帖子了。感谢您的解决方案。它有效!