IBM ツールボックスで JDBC を使用して、AS400 サーバー上のテーブルに接続しています。接続を確立するときに、URL にユーザー名またはパスワードを指定しないので、システムがユーザーにプロンプトを表示するようにします。パスワードをハードコーディングしたり、管理者パスワードを自動的に入力したりしたくありません。悪い考えです。とても迅速です。他のすべての設定をプロパティ オブジェクトに押し込んで送信します。
prop = setProperties(false, //ensure the server always prompts for logon information
"","",SCHEMA);
connection = DriverManager.getConnection("jdbc:as400://" + IP_ADDRESS, prop);
私のプロパティ設定関数は次のようになります。
private Properties setProperties(boolean local,String USER_ID,
String PASSWORD,String SCHEMA)
{
Properties prop = new Properties();
prop.put("naming", "system");
prop.put("errors", "full");
prop.put("libraries", SCHEMA + ", *LIBL");
if (!local) {
prop.put("user", USER_ID);
prop.put("password", PASSWORD);
}
return prop;
} // serverProperties
私は un も pw も提供していないので、この気の利いた小さな箱を手に入れました。
この箱はどこから来たのですか?これは JDBC のことですか、それとも IBM ツールボックスのことですか? そして、私はそれを傍受できますか?皮が剥けるか楽しみです。このプロジェクトをデスクトップから Android に変換するとき、Android UI を生成できるようにしたいと考えています (Android は swing や awt を認識していないため)。
これらの 2 つのチェックボックスをオンにすると、開いたり閉じたりする接続の数に関係なく、これらの un/pw フィールドに入力したものはすべて保持されます。その un/pw データをどこかから取得する方法はありますか? 接続プロパティ オブジェクトを取得しようとしましたが、すべてのフィールドが空白に戻ってきます。IBM Toolbox のプロパティ ドキュメントには、期待されるプロパティが一覧表示されていますが (現時点では一般的なプロパティにのみ関心があります)、それらのプロパティをどこで取得できるかは実際にはわかりません。
これ
Properties prop = connection.getClientInfo();
System.out.print(prop.toString());
これは、私{ClientProgramID=, ClientUser=, ApplicationName=, ClientHostname=, ClientAccounting=}
が期待していたものにさえ近くありません。自分の財産がどこに行くのかわかりません。
情報をありがとう!