2013-04-09 3 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

계정 테이블에 자동 증가 기본 키가 있습니까? –

+0

기본 키는 사용자 이름입니다. – Steven

+0

그래서 "주문"이란 무엇입니까? ORDER BY 절이없는 "SELECT *"를 수행한다고해서 결과 집합에 대한 특정 순서가 보장되는 것은 아닙니다. 자동 증가 필드를 추가하면 새로 삽입 된 행은 자동으로 삭제 된 것과 다른 값을 갖게됩니다. –

답변

0

을 시도

공공 정적 무효 저장() : 여기

는 코드입니다. 해당 열은 auto increment이어야합니다. 또한 Username을 고유하게 만드십시오.