PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Niesławny wyjątek java.sql.SQLException:nie znaleziono odpowiedniego sterownika

Niesławny wyjątek java.sql.SQLException:nie znaleziono odpowiedniego sterownika

Ten wyjątek może mieć zasadniczo dwa przyczyny:

#1. Sterownik JDBC nie jest załadowany

Musisz upewnić się, że sterownik JDBC jest umieszczony we własnym /lib serwera folder.

Lub, gdy w rzeczywistości nie korzystasz ze źródła danych puli połączeń zarządzanych przez serwer, ale ręcznie bawisz się funkcją DriverManager#getConnection() w WAR, musisz umieścić sterownik JDBC w /WEB-INF/lib WAR i wykonaj ..

Class.forName("com.example.jdbc.Driver");

.. w kodzie przed pierwszy DriverManager#getConnection() zadzwoń, dzięki czemu upewnisz się, że nie połknij/zignoruj ​​każdy ClassNotFoundException które mogą zostać przez niego wyrzucone i kontynuują przepływ kodu tak, jakby nie wydarzyło się nic wyjątkowego. Zobacz także Gdzie muszę umieścić sterownik JDBC dla puli połączeń Tomcata?

#2. Lub adres URL JDBC ma niewłaściwą składnię

Musisz upewnić się, że adres URL JDBC jest zgodny z dokumentacją sterownika JDBC i pamiętaj, że zwykle rozróżniana jest wielkość liter. Gdy adres URL JDBC nie zwraca true dla Driver#acceptsURL() dla dowolnego załadowanego sterownika, otrzymasz dokładnie ten wyjątek.

W przypadku PostgreSQL jest to udokumentowane tutaj.

W przypadku JDBC baza danych jest reprezentowana przez adres URL (Uniform Resource Locator). W PostgreSQL™ przyjmuje to jedną z następujących form:

  • jdbc:postgresql:database
  • jdbc:postgresql://host/database
  • jdbc:postgresql://host:port/database

W przypadku MySQL jest to udokumentowane tutaj.

Ogólny format adresu URL JDBC do łączenia się z serwerem MySQL jest następujący, z elementami w nawiasach kwadratowych ([ ] ) jest opcjonalne:

jdbc:mysql://[host1][:port1][,[host2][:port2]]...[/[database]] » [?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]

W przypadku Oracle jest to udokumentowane tutaj.

Istnieją 2 składnie adresów URL, stara składnia, która będzie działać tylko z SID i nowa z nazwą usługi Oracle.

Stara składnia jdbc:oracle:thin:@[HOST][:PORT]:SID

Nowa składnia jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE

###Zobacz też:

  • Gdzie muszę umieścić sterownik JDBC dla puli połączeń Tomcata?
  • Jak zainstalować sterownik JDBC w projekcie internetowym Eclipse bez stawiania czoła java.lang.ClassNotFoundexception
  • Jak powinienem połączyć się z bazą danych/źródłem danych JDBC w aplikacji opartej na serwlecie?
  • Jaka jest różnica między „Class.forName()” a „Class.forName().newInstance()”?
  • Połącz Javę z bazą danych MySQL


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zdobądź n pogrupowanych kategorii i zsumuj inne w jedną

  2. postgresql - zamień wszystkie wystąpienia ciągu w polu tekstowym

  3. Zresetuj licznik automatycznego przyrostu w postgresie

  4. Utwórz diagram ER w pgAdmin

  5. Przechowywanie obrazów w polach bajtowych w bazie danych PostgreSQL