我正在创建一个游戏,当玩家完成他或她的任务时将任务值存储到数据库中。我现在遇到的问题是编写一个方法,在MySQL表中搜索玩家ID和任务ID,以检查他或她是否已经完成了它。
我是Java的数据库编程的新手,所以这是我在其他地方查看一些示例代码所得到的。
public boolean checkQuest(int questid) {
Connection con = DatabaseConnection.getConnection();
PreparedStatement ps = con.prepareStatement("SELECT questid FROM completedQuests WHERE characterid = ?");
ps.setInt(1, scriptId);
ResultSet rs = ps.executeQuery();
}
基本上,我想检查表中是否存在任务ID。如果没有,那意味着玩家尚未完成任务,因此可以使用。
答案 0 :(得分:5)
我在where
子句中检查并使用Java端来检查此查询是否返回任何结果:
Connection con = DatabaseConnection.getConnection();
PreparedStatement ps =
con.prepareStatement
("SELECT questid FROM completedQuests WHERE characterid = ? AND questid = ?");
ps.setInt (1, characterId);
ps.setInt (2, questId);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
// Quest already completed
} else {
// Quest not completed yet
}
// Close resources etc.