【问题标题】:want to return an rs.getInt() value in my database想在我的数据库中返回一个 rs.getInt() 值
【发布时间】: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 语句来说更快
  • 对不起,我有一段时间没有检查这个帖子了。感谢您的解决方案。它有效!

标签: java mysql sql swing


【解决方案1】:

感谢 cmets 中的 @DanielBarbardian 和 @deHaar。我试过return rs.getInt("score");,它有效。它将从右列返回分数并显示正确用户的分数。

【讨论】:

    猜你喜欢
    • 2017-02-25
    • 1970-01-01
    • 2022-06-14
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    相关资源
    最近更新 更多