我正在制作一个游戏,我想用这种方法将游戏保存到我的数据库中。游戏名称,玩家,纸牌堆和轮到的玩家必须上载到数据库。 但是,此方法始终使我返回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);
}
}
数据必须在数据库中,现在我什么也没得到
答案 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来查询对象,因此不必手动关闭查询对象。