JDBC 経由で Oracle データベースに接続する方法に関する情報を探しているとき、既知のホスト: ポートに接続する方法を示す同じソリューションしか見つかりません。この接続文字列を渡す必要があります
jdbc:oracle:thin:[user/password]@[host][:port]:SID
JDBCに変換すると、これが機能します。
protected Connection connect()
{
Connection conn;
try
{
Class.forName(oracle.jdbc.OracleDriver.class.getCanonicalName());
}
catch (ClassNotFoundException e)
{
return null;
}
try
{
conn = DriverManager.getConnection("jdbc:oracle:thin:@1.1.1.1:1536:sid", "user", "passwd");
}
catch (SQLException e)
{
return null;
}
return conn;
}
ただし、このアプローチの問題は、データベースがどのホスト:ポートにあるかを調べなければならないことです。などのデータベースツールを使用する場合PL/SQL Developer
、これは必要ありません。ユーザーはデータベース名のみを求められますが、それでもツールは何らかの方法で接続できます。だから私はこれがどのように行われるか知りたいです。現在tnsping
、パス内にあることを要求することでこれを実現し、接続 URL を提供するヘルパー クラス (上記のコード例には示されていません) でtnsping
、出力を呼び出して解析します。これはあまり良い方法ではなく、適切な接続方法があるかどうか疑問に思っていました。