sql >> Database >  >> RDS >> PostgreSQL

De beruchte java.sql.SQLException:geen geschikte driver gevonden

De beruchte java.sql.SQLException:geen geschikte driver gevonden

Deze uitzondering kan in principe twee . hebben oorzaken:

#1. JDBC-stuurprogramma is niet geladen

U moet ervoor zorgen dat het JDBC-stuurprogramma in de server's eigen /lib . wordt geplaatst map.

Of, wanneer u eigenlijk geen door de server beheerde gegevensbron voor verbindingsgroepen gebruikt, maar handmatig aan het rommelen bent met DriverManager#getConnection() in WAR, dan moet u het JDBC-stuurprogramma in WAR's /WEB-INF/lib plaatsen en voer ..

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

.. in uw code voor de eerste DriverManager#getConnection() oproep waarbij je ervoor zorgt dat je niet slikken/negeren elke ClassNotFoundException die erdoor kan worden gegooid en de codestroom voortzetten alsof er niets bijzonders is gebeurd. Zie ook Waar moet ik het JDBC-stuurprogramma voor Tomcat's verbindingspool plaatsen?

#2. Of de JDBC-URL heeft de verkeerde syntaxis

U moet ervoor zorgen dat de JDBC-URL in overeenstemming is met de JDBC-stuurprogrammadocumentatie en onthoud dat deze meestal hoofdlettergevoelig is. Wanneer de JDBC-URL niet true retourneert voor Driver#acceptsURL() voor een van de geladen stuurprogramma's, krijgt u ook precies deze uitzondering.

In het geval van PostgreSQL het is hier gedocumenteerd.

Bij JDBC wordt een database weergegeven door een URL (Uniform Resource Locator). Met PostgreSQL™ kan dit een van de volgende vormen aannemen:

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

In het geval van MySQL het is hier gedocumenteerd.

Het algemene formaat voor een JDBC-URL om verbinding te maken met een MySQL-server is als volgt, met items tussen vierkante haken ([ ] ) optioneel zijn:

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

In het geval van Oracle het is hier gedocumenteerd.

Er zijn 2 URL-syntaxis, de oude syntaxis die alleen werkt met SID en de nieuwe met de Oracle-servicenaam.

Oude syntaxis jdbc:oracle:thin:@[HOST][:PORT]:SID

Nieuwe syntaxis jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE

###Zie ook:

  • Waar moet ik het JDBC-stuurprogramma voor de verbindingspool van Tomcat plaatsen?
  • JDBC-stuurprogramma installeren in Eclipse-webproject zonder geconfronteerd te worden met java.lang.ClassNotFoundexception
  • Hoe moet ik verbinding maken met de JDBC-database / gegevensbron in een op servlet gebaseerde toepassing?
  • Wat is het verschil tussen "Class.forName()" en "Class.forName().newInstance()"?
  • Verbind Java met een MySQL-database


  1. Shapefiles importeren in postgresql in linux met pgadmin 4

  2. Verschil tussen sleutel, primaire sleutel, unieke sleutel en index in MySQL

  3. Hoe SQL Server op Linux te installeren

  4. SQLite - ORDER OP RAND()