2013-04-09 82 views
0

好吧所以我有一個程序可以將新玩家添加到數據庫,並將其加載到列表中。問題是,當我刪除一個用戶,然後去添加一個新用戶,新玩家被添加到舊用戶的位置。主要是因爲那個地方現在是免費的,我用:MySQL保存/加載問題

rs.moveToInsertRow(); 

是有辦法,增加一個新的播放器時,它總是「添加到數據庫的結尾。就像從表中刪除一行以使數據庫進行壓縮時一樣,它沒有差距?

這裏是代碼:

公共靜態無效保存(){ 嘗試 {

String Name = "#####"; 
    String Pass= "#####"; 
    String Host = "######"; 
     Connection con = DriverManager.getConnection(String.format(
    "jdbc:mysql://%s:%s/%s", Host, "####", "####"), 
    Name, Pass); 
     Statement stmt = con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 



    String sql = "SELECT * FROM Accounts"; 
     ResultSet rs = stmt.executeQuery(sql); 


    rs.moveToInsertRow(); 

     String userName= TestForm.UsernameTextField.getText(); //make this equal to whats in textfield 
     String password= TestForm.PasswordTextField.getText(); //make this equal to whats in textfield 

     String insertQuery="insert into Accounts (`Username`,`Password`) values ('"+userName+"','"+password+"');"; 
     stmt.executeUpdate(insertQuery); 

    stmt.close(); 
    rs.close(); 
} 

catch(Exception e) 
{ 
    System.out.println("ERROR"); 
    e.printStackTrace(); 
} 


} 
+0

您的帳戶表上是否有自動增量主鍵? – 2013-04-09 15:44:43

+0

主鍵是用戶名字段 – Steven 2013-04-09 18:46:59

+0

那麼什麼意思給你「訂單」呢?只是在沒有ORDER BY子句的情況下執行「SELECT *」並不能保證結果集的任何特定順序。如果添加自動增量字段,則新插入的行將自動具有與已刪除的行不同的更高數字值。 – 2013-04-09 20:06:29

回答

0

爲了解決這個問題,添加一列 '身份證'。該欄應該是auto increment。也使您的Username獨一無二。