2

データベースに重複するユーザー名が存在するかどうかを確認するこのプログラム。n問題は、データベース内の現在のユーザー名の数に応じて、挿入回数が繰り返されることです。

コードは次のとおりです。

ResultSet rs = SQLOperations.getAllUser(connection);            
while (rs.next()) {
  String user=rs.getString("username");
  if (username.equalsIgnoreCase(user)) {
    System.out.println("same username"); 
  } else {
    if(!password.equals(cpassword)) {
      System.out.println("not the same pass and cpass");
    } else {
      if (connection != null) {
        if (SQLOperations.addAccount(account, connection)) {
          System.out.println("successful insert");
        } else {
          System.out.println("failed insert");
        }
      } else {
        System.out.println("invalid connection");
      }
4

3 に答える 3

2

これは、データベース内のユーザーごとにループを繰り返し、データベース内のユーザーが同じユーザー名を持たないたびに新しいユーザーを追加しているためです。

Booleantrue から始まり、ユーザーがデータベースに存在する場合は false に変化するを作成する必要があります。次に、ループの後、Booleantrue の場合にユーザーを追加できます。

たとえば、次のことができます。

ResultSet rs = SQLOperations.getAllUser(connection);            
Boolean add = true;
while (rs.next()) {
    String user=rs.getString("username");
    if(username.equalsIgnoreCase(user)){
        System.out.println("same username"); 
        add = false;
        break;
    }
}


if (add) {
    if (connection != null) {
        if (SQLOperations.addAccount(account, connection)){
            System.out.println("successful insert");
        } else {
            System.out.println("failed insert");
        }
    } else {
        System.out.println("invalid connection");
    }
}
于 2013-08-11T17:15:03.570 に答える