1

そのため、mySQL で JDBC を使用して、Java アプリでテスト用の mySQL データベースに接続しましたが、すべて正常に機能しました。本番環境は、Oracle データベース上に配置されます。これを機能させるには、ドライバーと接続を変更するだけでよいようです。

私はこれを与えられました: /usr/local/oracle/product/10.1.0/client_1/bin/sqlplus -S user/password@SERVICE @something.sql

したがって、これがローカルでのアクセス方法であると想定しています。私もホストを任されました。したがって、接続URLは次のように変換され、これを実行できると思いました。

String url = "jdbc:oracle:thin:user/password@//host/SERVICE"

Connection c = DriverManager.getConnection(url);

しかし、これは機能していないようです。@something.sql の部分で混乱しています。それを接続 URL に含めるにはどうすればよいですか? また、現在の接続 URL「jdbc:oracle:thin:user/password@//host/SERVICE」に明らかなエラーはありますか?

4

2 に答える 2

2

まず、sqlplus は Oracle のコマンド ライン ユーティリティであり、その例で値が置き換えられることになっている例を示しました。

パスワードが「sename」の「ababa」という名前のユーザーがいたとします。サービスがサーバー「bottle」の「genie」であるとします。コマンドラインから実行された SQL が「SELECT * FROM Wishes LIMIT 3」であった場合、これは「/tmp/wishes.sql」というファイルにあります。

コマンド ラインから、次のように入力します。

/usr/local/oracle/product/10.1.0/client_1/bin/sqlplus -S ababa/sesame@genie @/tmp/wishes.sql

Java からは、次のように呼び出します。

Connection conn = DriverManager.getConnection("jdbc:oracle:thin://bottle/genie",
                                              "ababa",
                                              "sesame");
于 2012-04-13T20:21:08.427 に答える
0

I don't normally use connection strings directly in my code anymore, but that looks mostly right. The real problem is that Oracle isn't standard, which is why you have the silly @ sign in there.

You might also find that some of your SQL won't work either. That's because Oracle has some quirks. You really should test your code against an oracle database before tossing it into production.

于 2012-04-13T16:32:38.460 に答える