悪名高いjava.sql.SQLException:適切なドライバーが見つかりません
この例外には、基本的に2つがあります。 原因:
#1。 JDBCドライバーがロードされていません
JDBCドライバーがサーバー自体の/lib
に配置されていることを確認する必要があります フォルダ。
または、実際にはサーバー管理の接続プールデータソースを使用していないが、DriverManager#getConnection()
を手動でいじっている場合 WARでは、JDBCドライバーをWARの/WEB-INF/lib
に配置する必要があります。 実行します..
Class.forName("com.example.jdbc.Driver");
..コード内前 最初のDriverManager#getConnection()
しないことを確認するために電話してください ClassNotFoundException
を飲み込む/無視する これはそれによってスローされ、例外が何も起こらなかったかのようにコードフローを続行できます。 Tomcatの接続プール用のJDBCドライバーをどこに配置する必要があるかも参照してください。
#2。または、JDBCURLの構文が間違っています
JDBC URLがJDBCドライバーのドキュメントに準拠していることを確認する必要があります。また、通常は大文字と小文字が区別されることに注意してください。 JDBCURLがtrue
を返さない場合 Driver#acceptsURL()
の場合 ロードされたドライバのいずれかについても、まさにこの例外が発生します。
PostgreSQLの場合 ここに記載されています。
JDBCでは、データベースはURL(Uniform Resource Locator)で表されます。 PostgreSQL™では、これは次のいずれかの形式を取ります。
jdbc:postgresql:database
jdbc:postgresql://host/database
jdbc:postgresql://host:port/database
MySQLの場合 ここに記載されています。
MySQLサーバーに接続するためのJDBCURLの一般的な形式は、角かっこ(
[ ]
)で囲まれた次のとおりです。 )オプションである:
jdbc:mysql://[host1][:port1][,[host2][:port2]]...[/[database]] » [?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]
オラクルの場合 ここに記載されています。
2つのURL構文があります。古い構文はSIDでのみ機能し、新しい構文はOracleサービス名で機能します。
古い構文
jdbc:oracle:thin:@[HOST][:PORT]:SID
新しい構文
jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE
###関連項目:
- Tomcatの接続プール用のJDBCドライバーはどこに配置する必要がありますか?
- java.lang.ClassNotFoundexceptionに直面せずにEclipseWebプロジェクトにJDBCドライバーをインストールする方法
- サーブレットベースのアプリケーションでJDBCデータベース/データソースに接続するにはどうすればよいですか?
- 「Class.forName()」と「Class.forName()。newInstance()」の違いは何ですか?
- JavaをMySQLデータベースに接続する