2017-04-30 13 views
0

誰かが私を助けてくれますか?レコードが作成されたときにID(主キー)を取得してテキストフィールドに設定しようとしています。現在、それが返すものはすべて常に1です。 私の現在のアプローチは、次のようになります。Java/MySQL - 最後に保存されたレコードのIDを取得する

connection = Utilities.getConnection(); 
      String sqlQuery = "INSERT INTO student_details (Name, Surname, Date_Of_Birth, Gender, Address, Post_Code, Mobile_Number)" + " VALUES (?, ?, ?, ?, ?, ?, ?)"; 
      preparedStatement = connection.prepareStatement(sqlQuery); 
      preparedStatement.setString(1, txtFirstName.getText().trim()); 
      preparedStatement.setString(2, txtSurname.getText().trim()); 
      preparedStatement.setString(3, String.valueOf(dpDateOfBirth.getValue())); 
      preparedStatement.setString(4, cbGender.getSelectionModel().getSelectedItem().toString()); 
      preparedStatement.setString(5, txtAddress.getText().trim()); 
      preparedStatement.setString(6, txtPostCode.getText().trim()); 
      preparedStatement.setString(7, txtMobileNo.getText().trim()); 
      preparedStatement.executeUpdate(); 
      txtStudentID.setText(String.valueOf(preparedStatement.RETURN_GENERATED_KEYS)); 
      Utilities.showInforMsg("Record Saved:", "Record has been saved."); 

答えて

0

あなたが経由して生成されたキーを取得する必要があります:あなたは

txtStudentID.setText(String.valueOf(preparedStatement.RETURN_GENERATED_KEYS)); 

このラインでやっていることに学生証を設定している

ResultSet rs = preparedStatement.getGeneratedKeys(); 

if (rs.next()) { 
    key = rs.getLong(1); 
} 

Statementインタフェースの定数の値(https://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#RETURN_GENERATED_KEYSを参照)

関連する問題