PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Java.sql.SQLException khét tiếng:Không tìm thấy trình điều khiển phù hợp

java.sql.SQLException khét tiếng:Không tìm thấy trình điều khiển phù hợp

Ngoại lệ này về cơ bản có thể có hai nguyên nhân:

# 1. Trình điều khiển JDBC không được tải

Bạn cần đảm bảo rằng trình điều khiển JDBC được đặt trong /lib của chính máy chủ thư mục.

Hoặc, khi bạn thực sự không sử dụng nguồn dữ liệu nhóm kết nối do máy chủ quản lý, mà đang tìm kiếm thủ công với DriverManager#getConnection() trong WAR, sau đó bạn cần đặt trình điều khiển JDBC trong /WEB-INF/lib của WAR và thực hiện ..

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

.. trong mã của bạn trước đây DriverManager#getConnection() đầu tiên gọi nhờ đó bạn đảm bảo rằng bạn không nuốt / bỏ qua bất kỳ ClassNotFoundException nào có thể được ném bởi nó và tiếp tục dòng mã như thể không có gì đặc biệt xảy ra. Xem thêm Tôi phải đặt trình điều khiển JDBC cho nhóm kết nối của Tomcat ở đâu?

# 2. Hoặc, URL JDBC sai cú pháp

Bạn cần đảm bảo rằng URL JDBC phù hợp với tài liệu trình điều khiển JDBC và lưu ý rằng nó thường phân biệt chữ hoa chữ thường. Khi URL JDBC không trả về true cho Driver#acceptsURL() đối với bất kỳ trình điều khiển nào đã tải, bạn cũng sẽ nhận được chính xác ngoại lệ này.

Trong trường hợp PostgreSQL nó được ghi lại ở đây.

Với JDBC, cơ sở dữ liệu được đại diện bởi một URL (Bộ định vị tài nguyên đồng nhất). Với PostgreSQL ™, điều này có một trong các dạng sau:

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

Trong trường hợp MySQL nó được ghi lại ở đây.

Định dạng chung cho URL JDBC để kết nối với máy chủ MySQL như sau, với các mục trong dấu ngoặc vuông ([ ] ) là tùy chọn:

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

Trong trường hợp của Oracle nó được ghi lại ở đây.

Có 2 cú pháp URL, cú pháp cũ chỉ hoạt động với SID và cú pháp mới với tên dịch vụ Oracle.

Cú pháp cũ jdbc:oracle:thin:@[HOST][:PORT]:SID

Cú pháp mới jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE

### Xem thêm:

  • Tôi phải đặt trình điều khiển JDBC cho nhóm kết nối của Tomcat ở đâu?
  • Cách cài đặt trình điều khiển JDBC trong dự án web Eclipse mà không gặp phải java.lang.ClassNotFoundexception
  • Làm cách nào để kết nối với cơ sở dữ liệu / nguồn dữ liệu JDBC trong một ứng dụng dựa trên servlet?
  • Sự khác biệt giữa "Class.forName ()" và "Class.forName (). newInstance ()" là gì?
  • Kết nối Java với cơ sở dữ liệu 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. Làm cách nào để xóa một số hàng cố định với sắp xếp trong PostgreSQL?

  2. Xoay vòng trên nhiều cột bằng cách sử dụng Tablefunc

  3. Postgres - FATAL:tệp cơ sở dữ liệu không tương thích với máy chủ

  4. Bỏ kết hợp nhiều mảng song song

  5. PostgreSQL Full Text Search và Trigram Confusion