Прословутото 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 база данни