PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Java.sql.SQLException yang terkenal:Tidak ditemukan driver yang cocok

Java.sql.SQLException yang terkenal:Tidak ditemukan driver yang cocok

Pengecualian ini pada dasarnya dapat memiliki dua penyebab:

#1. Driver JDBC tidak dimuat

Anda perlu memastikan bahwa driver JDBC ditempatkan di /lib . milik server sendiri folder.

Atau, ketika Anda sebenarnya tidak menggunakan sumber data kumpulan koneksi yang dikelola server, tetapi secara manual mengutak-atik DriverManager#getConnection() di WAR, maka Anda perlu menempatkan driver JDBC di /WEB-INF/lib WAR dan lakukan ..

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

.. dalam kode Anda sebelum DriverManager#getConnection() pertama panggilan di mana Anda memastikan bahwa Anda tidak menelan/mengabaikan ClassNotFoundException any yang dapat dilemparkan olehnya dan melanjutkan aliran kode seolah-olah tidak ada hal luar biasa yang terjadi. Lihat juga Di mana saya harus menempatkan driver JDBC untuk kumpulan koneksi Tomcat?

#2. Atau, URL JDBC salah sintaks

Anda perlu memastikan bahwa URL JDBC sesuai dengan dokumentasi driver JDBC dan perlu diingat bahwa biasanya peka huruf besar/kecil. Ketika URL JDBC tidak mengembalikan true untuk Driver#acceptsURL() untuk salah satu driver yang dimuat, maka Anda juga akan mendapatkan pengecualian ini.

Dalam kasus PostgreSQL itu didokumentasikan di sini.

Dengan JDBC, database diwakili oleh URL (Uniform Resource Locator). Dengan PostgreSQL™, ini mengambil salah satu bentuk berikut:

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

Dalam kasus MySQL itu didokumentasikan di sini.

Format umum untuk URL JDBC untuk menghubungkan ke server MySQL adalah sebagai berikut, dengan item dalam tanda kurung siku ([ ] ) menjadi opsional:

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

Dalam kasus Oracle itu didokumentasikan di sini.

Ada 2 sintaks URL, sintaks lama yang hanya akan bekerja dengan SID dan yang baru dengan nama layanan Oracle.

Sintaks lama jdbc:oracle:thin:@[HOST][:PORT]:SID

Sintaks baru jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE

###Lihat juga:

  • Di mana saya harus menempatkan driver JDBC untuk kumpulan koneksi Tomcat?
  • Cara menginstal driver JDBC di proyek web Eclipse tanpa menghadapi java.lang.ClassNotFoundexception
  • Bagaimana saya harus terhubung ke database/sumber data JDBC dalam aplikasi berbasis servlet?
  • Apa perbedaan antara "Class.forName()" dan "Class.forName().newInstance()"?
  • Menghubungkan Java ke database 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. Penyortiran PostgreSQL salah

  2. Saya ingin mengambil data dari nama tabel yang berbeda menggunakan fungsi postgresql

  3. Pencarian Teks Lengkap PostgreSQL dan Kebingungan Trigram

  4. Bagaimana cara melakukan pembaruan non-pemblokiran besar di PostgreSQL?

  5. Pertahankan zona waktu dalam jenis stempel waktu PostgreSQL