【发布时间】:2014-06-02 03:18:29
【问题描述】:
所以我正在创建一个游戏并实现了一个数据库来存储我的高分。我认为数据库正在运行,但是当我在菜单中查看高分时,我看到的值为 0,它没有保存高分。这是我到目前为止所做的,请告诉我如何解决这个问题。
public class ScoreDB {
Connection conn = null;
String url = "jdbc:derby:ScoresDB;create=true";
String username = "hello";
String pass = "hello";
public void connectScoreDB(){
try{
conn= DriverManager.getConnection(url,username,pass);
}catch(SQLException ex){
System.err.println("SQLException: " + ex.getMessage());
}
}
public void createScoreTable(){
try{
Statement statement = conn.createStatement();
String newTable ="ScoresDB";
String createTable="CREATE TABLE " + newTable + "(Score INT)";
statement.execute(createTable);
}catch(SQLException ex){
System.err.println("SQLException: " + ex.getMessage());
}
}
public void addHighScore(){
int highScore = FlappyBird.highScore;
String add = "INSERT INTO ScoresDB(Score) VALUES (?)";
try(PreparedStatement ps = conn.prepareCall(add)){
ps.setInt(1, highScore);
ps.execute();
}catch(SQLException ex){
System.err.println("SQLException: " + ex.getMessage());
}
}
public void update(String update){
try(Statement statement = conn.createStatement()){
statement.executeUpdate(update);
statement.close();
} catch (SQLException ex) {
Logger.getLogger(ScoreDB.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static void main(String[] args){
ScoreDB db = new ScoreDB();
db.connectScoreDB();
db.createScoreTable();
}
}
public static int highScore = 0;
【问题讨论】:
-
您是否已逐步执行 addHighScore() 方法以确保 FlappyBird.highScore 发生应有的变化?