sql >> Database teknologi >  >> RDS >> PostgreSQL

Den berygtede java.sql.SQLEundtagelse:Ingen passende driver fundet

Den berygtede java.sql.SQLEundtagelse:Ingen passende driver fundet

Denne undtagelse kan grundlæggende have to årsager:

#1. JDBC-driveren er ikke indlæst

Du skal sikre, at JDBC-driveren er placeret i serverens egen /lib mappe.

Eller, når du faktisk ikke bruger en serverstyret forbindelsespool-datakilde, men manuelt fifler rundt med DriverManager#getConnection() i WAR, så skal du placere JDBC-driveren i WAR's /WEB-INF/lib og udføre ..

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

.. i din kode før den første DriverManager#getConnection() opkald, hvorved du sikrer dig, at du ikke gør det sluge/ignorere enhver ClassNotFoundException som kan kastes af det og fortsætte kodestrømmen, som om intet usædvanligt skete. Se også Hvor skal jeg placere JDBC-driveren til Tomcats forbindelsespulje?

#2. Eller JDBC URL er i forkert syntaks

Du skal sikre dig, at JDBC-URL'en er i overensstemmelse med JDBC-driverdokumentationen og huske på, at der normalt skelnes mellem store og små bogstaver. Når JDBC URL'en ikke returnerer true for Driver#acceptsURL() for enhver af de indlæste drivere, så får du også præcis denne undtagelse.

I tilfælde af PostgreSQL det er dokumenteret her.

Med JDBC er en database repræsenteret af en URL (Uniform Resource Locator). Med PostgreSQL™ tager dette en af ​​følgende former:

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

I tilfælde af MySQL det er dokumenteret her.

Det generelle format for en JDBC URL til at oprette forbindelse til en MySQL-server er som følger med elementer i firkantede parenteser ([ ] ) er valgfri:

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

I tilfælde af Oracle det er dokumenteret her.

Der er 2 URL-syntaks, gammel syntaks, som kun fungerer med SID, og ​​den nye med Oracle-tjenestenavn.

Gammel syntaks jdbc:oracle:thin:@[HOST][:PORT]:SID

Ny syntaks jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE

###Se også:

  • Hvor skal jeg placere JDBC-driveren til Tomcats forbindelsespulje?
  • Sådan installeres JDBC-driveren i Eclipse-webprojektet uden at se java.lang.ClassNotFoundexception
  • Hvordan skal jeg oprette forbindelse til JDBC-databasen/datakilden i en servletbaseret applikation?
  • Hvad er forskellen mellem "Class.forName()" og "Class.forName().newInstance()"?
  • Tilslut Java til en MySQL-database


  1. Udfør en dynamisk krydstabuleringsforespørgsel

  2. Hvor kan man downloade Runtime Kit til Microsoft Access 2016

  3. Hvordan sprogindstillinger kan påvirke dine FORMAT()-resultater i SQL Server (T-SQL-eksempler)

  4. Hvordan søger man JSON-data i MySQL?