web-dev-qa-db-ja.com

SQLException:jdbc:derby:// localhost:1527に適したドライバーが見つかりません

Netbeansでこのエラーが発生します。

Java.sql.SQLException: No suitable driver found for jdbc:derby://localhost:1527/

これはどのように引き起こされ、どうすれば解決できますか?

23
Ganesh

Java.sql.SQLException:jdbc:derby:// localhost:1527 /に適したドライバーが見つかりません

この例外には2つの原因があります。

  • ドライバはロードされていません。
  • JDBC URLの形式が正しくありません。

あなたの場合、接続文字列の最後にデータベース名が表示されるはずです。たとえば(create=trueデータベースが存在しない場合にデータベースを作成したい場合):

jdbc:derby://localhost:1527/dbname;create=true

データベースは、ネットワークサーバーが起動したディレクトリにデフォルトで作成されます。ただし、データベースの場所への絶対パスを指定することもできます。

jdbc:derby://localhost:1527//home/Pascal/derbyDBs/dbname;create=true

念のため、クラスパスにderbyclient.jarがあり、適切なドライバをロードしていることを確認してくださいorg.Apache.derby.jdbc.ClientDriverサーバーモードで作業している場合。

25
Pascal Thivent

注意: こちら からダウンロードできます。

見つからない場合は、

  1. プロジェクト選択タブでプロジェクトを見つける

  2. 「ライブラリ」を右クリックします

  3. 「JAR /フォルダを追加...」をクリックします

  4. 「derbyclient.jar」を選択します

  5. 「開く」をクリックすると、「ライブラリ」の下に「derbyclient.jar」が表示されます。

URL、ユーザー名、パスワードが正しいことを確認し、コードを実行してください:)

18
Devy

私のために

DriverManager.registerDriver(new org.Apache.derby.jdbc.EmbeddedDriver());

助けた。このようにして、DriveManagerはderby EmbeddedDriverを認識します。新しいEmbeddedDriverの割り当ては重いかもしれませんが、反対に、Class.forNameにはtry/catch/doSomethingIntelligentWithExceptionが必要です。

11
Bruno Eberhard

JDBC DriverManagerは、指定された接続URLに適切なDriverを見つけることができません。 DBに接続する前にJDBCドライバーがまったくロードされていないか、接続URLが間違っています。接続URLが正常に見えるため、ドライバーがまったくロードされていないことは間違いありません。 DBに接続する前に、アプリケーションの起動中にドライバーをロードする必要があります。 Apache Derbyの場合、ドライバークラス名はorg.Apache.derby.jdbc.ClientDriver。そう:

Class.forName("org.Apache.derby.jdbc.ClientDriver");
4
BalusC

NetbeansでJavaアプリケーションを作成しているときに同じ問題が発生しました。解決策は次のとおりです。

  1. プロジェクト選択タブでプロジェクトを見つける

  2. 「ライブラリ」を右クリックします

  3. 「JAR /フォルダを追加...」をクリックします

  4. 「derbyclient.jar」を選択します

  5. 「開く」をクリックすると、「ライブラリ」の下に「derbyclient.jar」が表示されます。

  6. URL、ユーザー名、Wordが正しいことを確認し、コードを実行します:)

3
CounterSpell

プロジェクトの下のライブラリコンソールにライブラリを追加して、これを解決しました。

  • 右クリックしてライブラリを追加
  • add Java DB DRIVER。

私のプロジェクトは機能しています!

2

質問には回答されていますが、説明のためにコマンドラインを提供しています。ネットワークモードダービーに接続するために、できるだけ簡単なテストを試みていたときに、これはうまくいきました。

  • Class.forName( "org.Apache.derby.jdbc.ClientDriver")。newInstance();でアプリにロードされたドライバー

  • 接続URLは「jdbc:derby:// localhost:1527/myDB; create = true」でした。

  • Java -classpath derbyclient.jar :. myAppClassを使用してアプリを実行しました

2
lemic

組み込みDerbyを使用している場合、クラスパスにDerby.jarが必要です。

2
James McMahon

私は同じ問題に直面していました。接続URLとユーザー資格情報を使用して接続を取得する前に、DriverManager.registerDriver()呼び出しがありませんでした。

Linuxでは次のように修正されました。

DriverManager.registerDriver(new org.Apache.derby.jdbc.ClientDriver());
connection = DriverManager.getConnection("jdbc:derby://localhost:1527//tmp/Test/DB_Name", user, pass);

Windowsの場合:

DriverManager.registerDriver(new org.Apache.derby.jdbc.ClientDriver());
connection = DriverManager.getConnection("jdbc:derby://localhost:1527/C:/Users/Test/DB_Name", user, pass);
1
Anamika

Derbyサーバーを開始するのに足りない可能性があります。ダービーサーバーが起動すると、デフォルトポート1527のリッスンを開始します。

起動スクリプトは次の場所にあります。

Windows:

    <DERBY_INSTALLATION_DIRECTORY>/bin/startNetworkServer.bat

Linux:

    <DERBY_INSTALLATION_DIRECTORY>/bin/startNetworkServer
0
Anamika

同様の問題に直面し、Eclipseのクラスパスにderby.jar、derbyclient.jar、derbynet.jar、derbytools.jar jarを含めることで解決しました。

手順に従ってください

  1. プロジェクトを右クリックし、[ビルドパス]-> [ビルドパスの構成]を選択します。
  2. [ライブラリ]タブに移動し、[外部JARの追加]をクリックします。

  3. パスから上記のjarを選択します。 C:\ Program Files\Java\jdk1.8.0_161\db\lib

  4. OKをクリックします。

お役に立てれば :)

0
Hetal Rachh

このエラーは、接続文字列の構文が無効な場合に発生します。

接続文字列は次のように使用できます

'jdbc:derby:MyDbTest;create=true'

または

コマンドプロンプトで次のコマンドを使用できます。以下のコマンドは、MyDbTestという新しいデータベースを正常に作成します。

connect 'jdbc:derby:MyDbTest;create=true';
0
subho

このスレッドに記載されているすべてを試してみましたが、.registerDriver()のみが機能しました。これは、コードの私の部分がどのように見えるかです:

DriverManager.registerDriver(new org.Apache.derby.jdbc.ClientDriver());
connection = DriverManager.getConnection(url, user, pass);

問題は組み込みのDerbyにはなかったことに注意してください。

0
dafilipaj

Persistence.xmlでは、jdbcのURLがDerbyサーバーを指している間にEmbeddedDriverが使用された可能性もあります。この場合、URLを変更してデータベースのパスを指すようにします。

0
chance

私はこの問題にぶつかり、上記のすべての提案を試みましたが、それでも失敗しました。上記で提案されたことを繰り返すことなく、私(あなた)が欠落している可能性があるものがあります:あなたがmavenを使用している場合、おそらく依存関係を述べるでしょう:

<groupId>org.Apache.derby</groupId>
<artifactId>derbyclient</artifactId>
<version>10.10.1.1</version>

バージョンに注意してください。実行しているサーバーインスタンスと互換性がある必要があります。

Mavenの依存関係が提供するものを放棄し、実行中のサーバーの同じソースである「%Java_HOME%\ db\lib」から外部jarを手動で追加することで、この問題を解決しました。この場合、ローカルを使用してテストしています。

したがって、リモートサーバーインスタンスでテストする場合は、サーバーパッケージに付属しているderbyclient.jarを探してください。

0
peterong

データベースが作成されており、への接続を開始している場合は、ドライバーjarを追加する必要があります。プロジェクトウィンドウから、ライブラリフォルダを右クリックし、c:programsfiles\Sun\javadb\lib\derbyclient.jarに移動します。ファイルをロードすると、実行できるはずです。

ではごきげんよう

0
csejay

Java DBサーバーが開始されていない場合も、同じエラーが発生する可能性があります。

0
ntombela