2013-04-09 8 views
0

Ok J'ai donc un programme dans lequel j'ajoute de nouveaux lecteurs à une base de données, et où je charge les utilisateurs dans une liste. Le problème est lorsque je supprime un utilisateur, puis aller ajouter un nouvel utilisateur, le nouveau joueur est ajouté à où l'ancien utilisateur était. Fondamentalement parce que cet endroit est libre maintenant et je l'utilise:MySQL Save/Load Numéro

rs.moveToInsertRow(); 

est-il possible que lors de l'ajout d'un nouveau joueur il toujours »ajoute à la fin de la base de données. Comme lorsque vous supprimez une ligne de la table pour que la base de données soit compressée afin qu'elle ne comporte aucun espace?

Voici le code:

public static void Save() { essayer {

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

Avez-vous une clé primaire d'auto-incrémentation sur votre table de comptes? –

+0

la clé primaire est le champ de nom d'utilisateur – Steven

+0

Alors qu'est-ce qui connote "ordre" pour vous? Le simple fait de "SELECT *" sans clause ORDER BY ne garantit aucun ordre spécifique pour le jeu de résultats. Si vous ajoutez un champ d'auto-incrémentation, votre nouvelle ligne insérée aura automatiquement une valeur différente, plus élevée, que celle qui a été supprimée. –

Répondre

0

Pour résoudre ce problème, ajoutez une colonne 'id'. Cette colonne doit être auto increment. Faites également votre Username unique.