Nhiều thư viện kết nối cơ sở dữ liệu cung cấp khả năng kiểm tra kết nối SQL của chúng cho sự không hoạt động. Ví dụ, thư viện tổng hợp JDBC c3p0 có một thuộc tính được gọi là preferredTestQuery
, được thực hiện trên kết nối tại các khoảng thời gian được định cấu hình. Tương tự, Apache Commons DBCP có validationQuery
.Truy vấn kiểm tra SQL hoặc truy vấn xác thực hợp lệ sẽ hoạt động trên tất cả (hoặc hầu hết) cơ sở dữ liệu
Nhiều người examplequeries Tôi đã xem là dành cho MySQL và khuyên bạn nên sử dụng SELECT 1;
làm giá trị cho truy vấn thử nghiệm. Tuy nhiên, truy vấn này không hoạt động trên một số cơ sở dữ liệu (ví dụ: HSQLDB, trong đó SELECT 1
mong đợi một điều khoản FROM
).
Có truy vấn cơ sở dữ liệu không thuyết phục nào có hiệu quả tương đương nhưng sẽ hoạt động với tất cả cơ sở dữ liệu SQL không?
Edit:
Nếu không có (mà có vẻ là trường hợp), ai đó có thể đề nghị một loạt các truy vấn SQL mà sẽ làm việc cho các nhà cung cấp cơ sở dữ liệu khác nhau? Ý định của tôi là lập trình xác định một câu lệnh mà tôi có thể sử dụng dựa trên cấu hình của nhà cung cấp cơ sở dữ liệu của mình.
Xem thêm [Query DB2 đơn giản để xác nhận kết nối] (http://stackoverflow.com/questions/2775184/simple-db2-query-for-connection-validation). –
Lưu ý: việc cấu hình truy vấn thử nghiệm là không cần thiết nữa, xem [answer] (http://stackoverflow.com/a/35270023/60518) bên dưới –