0

Oracle のドキュメントに記載されているように、データベースの URL は DriverManager.getConnection() 関数で "jdbc:subprotocol:subname:" の形式である必要があります。最初の最も明白な質問は、たとえば "C: \myDatabase.db"?

4

3 に答える 3

1

JDBC-Url は URL であり、Uniform Resource Identifier です。これは、構文に従う必要があることを意味します。C:\myDatabase.dbURI に書き換えることもできますfile:/c:/myDatabase.db

実際、Windows エクスプローラー ブースも同じですが、Web ブラウザーは URL 形式しか理解できません。

URL に戻る: URL は構文に従います。最初の部分はプロトコルです ( file) これは:、prootocoll 固有の部分から a で区切られます。

file-URI の場合、これは root-directory で始まり、その後に で区切られたフォルダーが続くパスになります//

JDBC-Url の場合、唯一の共通部分はスキーム ( jdbc) とセパレーター:です。

あなたの例では、ローカルファイルを使用しています。しかし、別のサーバーで実行されているデータベースをどのように指定しますか? 別の方法を作成する必要があります。したがって、次のように開始できます。

  • jdbc:スキーマ

  • mydatabasesystem:これは、「これは 'ydatabbasesystem' の JDBC-Url であり、次の構文を知っています。

  • localfile:ローカル ファイルを使用します。次の部分は localfiles の構文です。

  • /c:/myDatabase.db私のファイルがあります

これにより、jdbc-Url が生成されます。

jdbc:mydatabasesystem:localfile:/c:/myDatabase.db

データベースがネットワーク経由で接続されている可能性があることを想像します。これは次のように記述できます。

jdbc:mydatabasesystem:remoteserver:servername?username=user&password=secret

おわかりのように、さまざまなメーカーのデータベースに接続するための一般的な方法を作成する場合、データベースに接続するための共通の方法を作成する必要があります。これは、JDBC-url のようなものになります。

于 2013-09-26T20:12:44.013 に答える
1

Java はオペレーティング システムに依存せず、「C:\myDatabase.db」などの形式はオペレーティング システム固有です。たとえば、Solaris で実行されている Oralce DBMS に接続することはできません。また、DBMS に依存しないようにしようとしています。すべての DBMS システムが、MySQL のようなシステムの同じデータベース/テーブル編成を使用しているわけではありません。解決しようとしている問題の複雑さを考えると、彼らの解決策は実際にはかなり単純です。

于 2013-09-26T19:41:12.803 に答える
1

URL 内の各コンポーネントを分割すると、なぜその形式が必要なのかがわかります。

  1. 多くのデータベースがあり、それぞれ独自の方法で情報を保存しています。そして、特定のドライバーだけがその専有情報を理解して解釈できます。したがって、サブプロトコルを oracle/mysql/etc にする必要があります。
  2. オラクル専用のドライバーには多くの種類があります。http://docs.oracle.com/cd/E11882_01/appdev.112/e13995/oracle/jdbc/OracleDriver.htmlで、サブネームに thin/oci/etc を入れることができる場所を確認してください。
  3. Sotirios が述べたように、データベースがあなたの C:\ になく、他の誰かのサーバーにある場合 - ホストが必要であり、当然ポートも必要になります。
  4. そのサーバーでも、同じポートで、1 つのデータベース「サーバー」が複数のデータベース (またはサービス) にサービスを提供できます。そのため、URL にもデータベース名が必要です。
于 2013-09-26T19:41:48.143 に答える