私は Java と Oracle 間の接続に不慣れで、ログイン ページを設計しています。
Java から Oracle 関数を呼び出そうとしています。Oracle 関数がFUNCT_PERSON
2 つの IN パラメータで呼び出されると仮定します。 username
andpassword
は、ユーザー ID を返しますNUMBER
。
FUNCT_PERSON
関数内でSELECT
ステートメントを使用し、見つかった場合はユーザー ID 番号を返し、それ以外の場合は 0 を返します。
これが私のコードです:
String sql = "{ ? = call FUNCT_PERSON(?,?) }";
CallableStatement statement = connection.prepareCall(sql);
statement.setString(2,username);
statement.setString(3,password);
statement.registerOutParameter(1, java.sql.Types.INTEGER);
Boolean check = statement.execute();
if (!check) {
//proceed to another page
} else {
//Go back to the login page
}
Boolean check = statement.execute();
チェックの目的がよくわからないので、特に行が正しいかどうかはわかりません..
関数がユーザー ID を返す場合、それはデータベースに存在することを意味し、別のページに進みます。そうでない場合は、ログイン ページにリダイレクトされます。