sql >> データベース >  >> RDS >> PostgreSQL

悪名高いjava.sql.SQLException:適切なドライバーが見つかりません

    悪名高い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データベースに接続する


    1. 既存のチェック制約を変更する方法は?

    2. 接続文字列でサービス名の代わりにSIDを使用すると、cx_Oracleが接続しません

    3. テーブルの最初の行の削除を防ぐ方法(PostgreSQL)?

    4. OracleSQLのパーサー