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();
}
}
Avez-vous une clé primaire d'auto-incrémentation sur votre table de comptes? –
la clé primaire est le champ de nom d'utilisateur – Steven
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. –