ID 番号を自動的に機能させることができないため、データベースの ID 番号を手動で増やしています。これはプロジェクト用であり、自動的に機能しなくても問題ありません。後で試して解決できます。
resultSet で最小の空き ID 番号をチェックするメソッドを作成しています。最も低い値は、登録時にユーザーに与えられる availableId と呼ばれる整数として設定されます。
これは私がこれまで読んだことから得たものです:
http://docs.oracle.com/javase/6/docs/api/java/sql/ResultSet.html http://wiki.netbeans.org/GetStartedwithJavaDB
例として、これらは私のデータベース内の私の ID です。
/,2,/,4,5,6,/,8,9
これらのユーザーがアカウントを削除したため、1、3、および 7 が欠落しています。たとえば、他のユーザーを入力する前に番号 1 を入力すると、次のユーザーは番号 3 として登録されます。
public int getAvailableId() {
int availableId = 1;
try {
String stmt = "select PID from APP.PERSON";
PreparedStatement ps = Main.getPreparedStatement(stmt);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
int n = rs.getInt(1);
int n2 = rs.next().getInt(1);
if (!(n == 1)) {
return availableId;
} else if (!(n2-- == n)) {
availableId = n++;
}
}
rs.close();
ps.close();
} catch (Exception e) {
System.out.println(e);
}
return availableId;
}
ここで 2 つの問題:
rs.next()
ブール値を返しますが、n2 に次の行の整数の値を保持させたい - ここからこれを行うメソッドが見つかりません - http://docs.oracle.com/javase/6/docs/api /java/sql/ResultSet.html- すべてをループして、可能な限り最小の空き ID 番号を見つける方法がわかりません。
ごみコードを許してください!私は進むにつれて多くのことを学んでおり、これは1つには悪い習慣であり、2つにはコードが良くないことを理解しています。
どうすればこれを行うことができますか?