JDBC と SQLite - 何を試しても適切なドライバーが見つかりません

王林
リリース: 2024-02-09 10:57:18
転載
629 人が閲覧しました

php Xiaobian Yuzai さんは、JDBC と SQLite の使用中に問題が発生しました。いくら頑張っても、適切なドライバーが見つかりませんでした。 JDBC は Java がデータベースに接続するための標準インターフェイスであり、SQLite は軽量の組み込みリレーショナル データベース エンジンです。ただし、JDBC はさまざまなデータベース用のドライバーを提供していますが、SQLite 用に特別に設計されたドライバーはありません。これにより、編集者は混乱し、SQLite データベースに接続して正常に操作できなくなりました。次の記事では、この問題を解決する方法を検討します。

質問内容

学習のため、簡単なJavaプログラムを作成してsqliteデータベースに接続してみます。しかし、どんなに頑張っても成功できませんでした。いつも no driver for jdbc:sqlite:database.db というメッセージが表示されます。しかし、それはとてもシンプルなはずです。 Maven リポジトリから多くのドライバーを試しました。

私は理論を読んで理解しました。jdbc API は jdbc マネージャーとの通信を処理し、jdbc ドライバーはデータベースとの通信を処理します。また、コンパイルされたクラス ファイルを実行するときは、データベース ドライバーを含む .jar ファイルにクラスパスを追加する必要があることも学びました。たとえば、ここで説明されているように。

一部のチュートリアルでは、ドライバーを登録するには class.forname() を使用する必要があると主張していますが、Oracle のドキュメントには次のように記載されています。 リーリー

さらに、私が従った sqlite チュートリアルでは、

drivermanager.getconnection(url); サンプル sqlitetutorial.net を実行する前にドライバーを登録しませんでした。

私のディレクトリ

e:\project には次のファイルがあります: リーリー

コンパイルされたクラス ファイルを実行するときは、ターミナル ウィンドウ (powershell) で

java -cp ".;sqlite-jdbc-3.44.1.0.jar" データベース を使用します。

これは私のコードです:

リーリー

私を前進させるために何か助けがあれば、とても感謝しています。

これは .jar ファイルが見つからないことに関係していると思いますが、可能な限りすべてのことを試しました。.jar ファイルのコピーを別のディレクトリのどこかに置き、名前を変更して簡単にするなど、追加する場合はディレクトリのクラスパスなどを複数追加してください。何が足りないのかわかりません。

また、vscode で「参照ライブラリ」の下に .jar ファイルを追加して同じことを実行しようとすると、やはり機能しません。

解決策

問題は、sqlite jdbc ドライバーにも

slf4j-api-1.7.36.jar が必要であることです。詳細については、github リポジトリ#を参照してください # #: つまり、

slf4j-api-1.7.36.jar

をそのディレクトリに配置し、次を使用する必要もあります。 リーリー 私のマシンではこれで動作します: リーリー

class.forname("org.sqlite.jdbc")

をアプリケーションに明示的に追加した場合は、

slf4-api -1.7 を使用しない場合と同様に、この問題を診断できます。 36.jar は次のようになります (class.fornamemain に追加しました): リーリー したがって、ドライバーを明示的にロードする必要はなくなりましたが、追加のトラブルシューティング情報を提供できます。

以上がJDBC と SQLite - 何を試しても適切なドライバーが見つかりませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート