2014-05-25 51 views
0

我想將我的遊戲中的高分保存到數據庫而不是.dat文件中,並希望任何人都可以爲我提供一些幫助。在Java JDBC中將高分保存到數據庫中

我已經創建了數據庫的類,我只是不知道如何實現高分保存在數據庫中。

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()); 
     } 
    } 
+0

至少,您需要提供有關數據庫本身的一些細節。 –

回答

2

最簡單的方法是使用SQL。 Oracle在組合Oracle中提供了很好的示例。另外你需要一些關於SQL的知識,一個好的起點是W3Schools。 Alterantive方法是使用OR方法而不是Hibernate或EclipseLink等。 Hibernate

使用上面的鏈接。我強烈建議您閱讀至少Oracle鏈接。

的SQL部分是很容易的:

1)你需要創建一個表與您所需要的信息,積分榜。 Create Table - W3Schools

2)您需要創建條目 Insert entries - W3Schhols

3)閱讀條目/榜 SELECT - W3Schhols

+0

我創建了表格,我只想在分數高於當前高分時輸入要插入的條目。 – user3673033

3

你可以做如下

public void Add(int highScore) throws SQLException { 
     String query = "INSERT INTO ScoresDB VALUES(highScore)"; 
     try (Statement stmt = getConn().createStatement()) { 
      stmt.executeUpdate(query); 
    } 
} 

我不知道有多少場你有在你的表中,但如果你想在一般情況下使用INSERT命令,你應該遵循這個

INSERT INTO table_name VALUES (value1,value2,value3,...); 

注意:您ScoresDB有一個日提交的高分

第二種方法是使用PreparedStatement的

例如:

public void Add(int highScore){ 
String sql = "INSERT INTO ScoresDB (highScore) VALUES (?)"; 
     try (PreparedStatement ps = getConn().prepareCall(sql)) { 
      ps.setString(1, highScore); 
      ps.executeUpdate(); 
    } 
}  

要了解using語句之間的差異你應該看看這個鏈接。 Difference between Statement and PreparedStatement

+0

謝謝,但我不想自己插入值,我希望他們通過用戶分數自動插入 – user3673033

+0

K,我添加了第二種方式,以我的答案。但無論如何,您應該從某處計算或讀取高分,並將其傳遞給此方法,以便將其添加到您的ScoresDB中。希望能幫助到你。如果是這樣,請投票 –

+0

酷感謝會嘗試這種方式。不幸的是我不能投票給你,因爲我沒有足夠的聲望。如果我遇到其他困難,我是否可以與您聯繫? – user3673033