http://docs.Oracle.com/javase/tutorial/jdbc/basics/gettingstarted.html でJDBCチュートリアルを実行しており、独自のJDBCデータベースを構築して作成することもできました。大騒ぎ。ただし、Javaアプリケーションからデータベースに接続しようとすると、例外が発生します。
Java.sql.SQLException:jdbc:derby:db directoryに適したドライバが見つかりません
次に、以下を使用してJDBCドライバーを手動で指定しようとします。
Class.forName("org.Apache.derby.jdbc.EmbeddedDriver");
次の例外エラーが発生します。
Java.lang.ClassNotFoundException:org.Apache.derby.jdbc.EmbeddedDriver
このドライバーは、チュートリアルで指定されているドライバーであり、そのドライバーを使用してデータベースを作成する際に問題がなかったため、読み込みに問題はないはずです。新しいデータベースを作成しようとして、接続ステートメントの最後にプロパティ「; create = true」を追加しようとしたが、それでも同じ例外エラーが発生する。
以下の私のアプリケーションコードをご覧ください。どんな助けでも素晴らしいです:)。
package com.ddg;
import Java.sql.Connection;
import Java.sql.DriverManager;
import Java.sql.SQLException;
public class SQLConnect
{
Connection Conn = null;
String URL;
String Username;
String Password;
public SQLConnect()
{
try
{
Class.forName("org.Apache.derby.jdbc.EmbeddedDriver");
}
catch (ClassNotFoundException e)
{
System.out.println(e.toString());
}
URL = "jdbc:derby:*directory name*";
System.out.println("Created SQL Connect");
}
public void CreateConnection()
{
try
{
Conn = DriverManager.getConnection(URL);
System.out.println("Successfully Connected");
}
catch (SQLException e)
{
System.out.println(e.toString());
}
}
public void CloseConnection()
{
try
{
this.Conn.close();
System.out.println("Connection successfully closed");
}
catch (SQLException e)
{
System.out.println(e.toString());
}
}
public static void main(String args[])
{
SQLConnect sql = new SQLConnect();
sql.CreateConnection();
sql.CloseConnection();
}
}
Java.sql.SQLException:jdbc:derby:dbディレクトリに適切なドライバが見つかりません
したがって、エラーは次の原因で発生する可能性があります。
ドライバーが正しく読み込まれていないか、URL
の形式が正しくありません。したがって、最初に、あなたの*.jar
はクラスパスにあります。見てみな。
また、URL
を次のように変更してみてください:
jdbc:derby://<path>/<databasename>;create=true
create=true
は、dbが存在しない場合に作成されることを保証します。
このtheadも見てください: SQLException:適切なドライバーがjdbc:derby:// localhost:1527に見つかりません
このタイプのエラーがある場合
Java.lang.ClassNotFoundException: org.Apache.derby.jdbc.ClientDriver
netbeans
を使用している場合は、次の手順に従う必要があります。
Java JDKには両方が付属しています
org.Apache.derby.jdbc.EmbeddedDriver
org.Apache.derby.jdbc.ClientDriver
Eclipse内で、使用するJRE(JDK)に、またはプロジェクトに明示的に次のjarを追加します。
[JDK]db/lib/derby.jar (EmbeddedDriver)
[JDK]db/lib/derbyclient.jar (ClientDriver)
Runtineの場合、適切なjarをJavaアプリケーションで使用できるようにする必要がありました。
チュートリアルに従っているとおっしゃいました。チュートリアルでは、JDBCドライバーをインストールする必要がありました。
JDBCドライバーのインストールは、通常、ドライバーをコンピューターにコピーしてから、その場所をクラスパスに追加することで構成されます。
実行したドライバーをインストールした後
Java.lang.ClassNotFoundException: org.Apache.derby.jdbc.EmbeddedDriver
これは、正しいダイバーを台無しにした場合にのみ可能です。
使用しました
org.Apache.derby.jdbc.EmbeddedDriver
ドライバーをロードする
しかし、使用する必要があります
org.Apache.derby.jdbc.ClientDriver
詳細については、 https://db.Apache.org/derby/papers/DerbyTut/install_software.html#derby_configure にある「Set DERBY_INSTALL」および「Configure Embedded Derby」セクションを参照してください。
DerbyはJavaSEインストールの一部であり、リンクに示されているDERBY_HOME
ではなく、セットアップ環境変数DERBY_INSTALL
がありました。
C:\> set DERBY_HOME=c:\Program Files\Java\jdk1.8.0_60\db
C:\> set CLASSPATH=%DERBY_INSTALL%\lib\derby.jar;%DERBY_INSTALL%\lib\derbytools.jar;.
C:\> cd %DERBY_INSTALL%\bin
c:\Program Files\Java\jdk1.8.0_60\db\bin> setEmbeddedCP.bat
必要なjdbcドライバーは、たとえばjre\lib\extディレクトリに置いています。私のシステムでは次のようになります:X:\ Java\jre1.8.0_181\lib\extこれが役に立てば幸いです。
ClientDriverを使用すると、Java.lang.ClassNotFoundExceptionが発生しました。私は最新のDriverバイナリを使用しましたが、それは間違いでした。
当時、最新のDriverバイナリは10.15.1.3でした。ここに Apache Site があります。
私はJava 8を使用しています。Hibernate5.4.2.Finalを使用しています。それでも、ドライバはJava 9!