PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Прословутото java.sql.SQLException:Не е намерен подходящ драйвер

Прословутото java.sql.SQLException:Не е намерен подходящ драйвер

Това изключение може да има основно две причини:

#1. JDBC драйверът не е зареден

Трябва да се уверите, че JDBC драйверът е поставен в собствения /lib на сървъра папка.

Или, когато всъщност не използвате управляван от сървъра източник на данни за пул за връзки, но ръчно се занимавате с DriverManager#getConnection() в WAR, тогава трябва да поставите JDBC драйвера в /WEB-INF/lib на WAR и изпълнете ..

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

.. във вашия код преди първият DriverManager#getConnection() обадете се, като се уверите, че гоне преглътнете/игнорирайте всяко ClassNotFoundException който може да бъде хвърлен от него и да продължи кодовия поток, сякаш не се е случило нищо изключително. Вижте също Къде трябва да поставя JDBC драйвера за пула за връзки на Tomcat?

#2. Или JDBC URL адресът е в грешен синтаксис

Трябва да се уверите, че URL адресът на JDBC съответства на документацията на драйвера на JDBC и имайте предвид, че обикновено е чувствителен към главни букви. Когато URL адресът на JDBC не връща true за Driver#acceptsURL() за всеки от заредените драйвери, тогава ще получите и точно това изключение.

В случай на PostgreSQL това е документирано тук.

С JDBC базата данни се представя чрез URL (Uniform Resource Locator). С PostgreSQL™ това приема една от следните форми:

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

В случай на MySQL това е документирано тук.

Общият формат за JDBC URL за свързване към MySQL сървър е както следва, с елементи в квадратни скоби ([ ] ) е по избор:

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

В случай на Oracle това е документирано тук.

Има 2 URL синтаксиса, стар синтаксис, който ще работи само със SID и новият с име на услугата Oracle.

Стар синтаксис jdbc:oracle:thin:@[HOST][:PORT]:SID

Нов синтаксис jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE

###Вижте също:

  • Къде трябва да поставя JDBC драйвера за пула за връзки на Tomcat?
  • Как да инсталирате JDBC драйвер в уеб проект на Eclipse, без да се сблъсквате с java.lang.ClassNotFoundexception
  • Как трябва да се свържа с JDBC база данни/източник на данни в приложение, базирано на сървлет?
  • Каква е разликата между „Class.forName()“ и „Class.forName().newInstance()“?
  • Свържете Java към 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. PostgreSQL Създаване на схема

  2. Postgres:дефиниране на стойност по подразбиране за CAST неуспехи?

  3. Ролята не съществува и не може да се създаде база данни, когато се използва PostgreSQL

  4. Тенденции в PostgreSQL:Най-популярните облачни доставчици, езици, VACUUM, стратегии за управление на заявки и типове внедряване в предприятието

  5. Свържете се с база данни PostgreSQL в Docker контейнер