我想将一些数据上传到数据库,但是该方法返回null

时间:2019-05-14 14:02:48

标签: java mysql sql

我正在制作一个游戏,我想用这种方法将游戏保存到我的数据库中。游戏名称,玩家,纸牌堆和轮到的玩家必须上载到数据库。 但是,此方法始终使我返回null,并且数据库中的表中没有数据。 我该如何工作?

连接没有问题,因为可以使用另一种从数据库中取出卡的方法。

java

public void slaSpelOp(String spelnaam, String spelers, String kerkerstapel, String schatstapel, String spelerAanBeurt) {

    try (Connection conn = DriverManager.getConnection(Connectie.URL, Connectie.USERNAME, Connectie.PASSWORD)) {
        PreparedStatement query = conn.prepareStatement("INSERT INTO ID222177_g08.Spel (naam, spelers, kerkerstapel, schatstapel, spelerAanBeurt)"
                + "VALUES (?, ?, ?, ?, ?)");

        query.setString(1, spelnaam);
        query.setString(2, spelers);
        query.setString(3, kerkerstapel);
        query.setString(4, schatstapel);
        query.setString(5, spelerAanBeurt);

        query.close();

        query.executeUpdate();
    } catch (SQLException ex) {
        throw new RuntimeException(ex);
    }
}

数据必须在数据库中,现在我什么也没得到

1 个答案:

答案 0 :(得分:1)

您需要在executeUpdate之后关闭查询。在执行executeUpdate之前不要关闭查询。

固定代码

public void slaSpelOp(String spelnaam, String spelers, String kerkerstapel, String schatstapel, String spelerAanBeurt) {

try (Connection conn = DriverManager.getConnection(Connectie.URL, Connectie.USERNAME, Connectie.PASSWORD)) {
    PreparedStatement query = conn.prepareStatement("INSERT INTO ID222177_g08.Spel (naam, spelers, kerkerstapel, schatstapel, spelerAanBeurt)"
            + "VALUES (?, ?, ?, ?, ?)");

    query.setString(1, spelnaam);
    query.setString(2, spelers);
    query.setString(3, kerkerstapel);
    query.setString(4, schatstapel);
    query.setString(5, spelerAanBeurt);

    query.executeUpdate();

    query.close(); // AFTER executeUpdate

} catch (SQLException ex) {
    throw new RuntimeException(ex);
}
}

注意::您也可以像使用conn对象一样使用try-with-resources来查询对象,因此不必手动关闭查询对象。