2

好的,所以我有一个程序,可以在其中将新玩家添加到数据库中,并将用户加载到列表中。问题是当我删除一个用户,然后去添加一个新用户时,新玩家被添加到旧用户所在的位置。基本上是因为那个位置现在是免费的,我使用:

rs.moveToInsertRow();

有没有一种方法可以在添加新玩家时“始终”添加到数据库的末尾。就像您从表中删除一行以使数据库压缩以使其没有间隙一样?

这是代码:

public static void Save() { try {

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

1 回答 1

1

你的表创建语句是什么?SHOW CREATE TABLE Accounts ;

似乎AUTO_INCREMENT表中的整数主键会帮助您解决问题。

于 2013-04-11T18:33:56.867 回答