Đây là giao diện không tương thích. javax.sql.DataSource
xác định một phương thức
default ConnectionBuilder createConnectionBuilder() throws SQLException
Và theo hợp đồng, giá trị trả về yêu cầu phải thuộc loại ConnectionBuilder.
Nếu bạn xem tài liệu của oracle.ucp.jdbc.PoolDataSourceImpl, nó định nghĩa phương thức là
public UCPConnectionBuilder createConnectionBuilder()
trong khi oracle.ucp.jdbc.UCPConnectionBuilder
không phải là một loại phụ của java.sql.ConnectionBuilder
.
Bây giờ trừ khi Oracle phát hành phiên bản chưa bao giờ của oracle.ucp.jdbc.UCPConnectionBuilder
giao diện mở rộng java.sql.ConnectionBuilder
, bạn sẽ không thể trao đổi UCP PoolDataSource với javax.sql.DataSource
.
Bản phát hành mới nhất tại thời điểm này dường như là UCP 19.3 , điều này vẫn sẽ gặp phải vấn đề tương tự, điều đáng tiếc là 19.3 được quảng cáo là tuân thủ JDK11. Vui lòng nêu ra một lỗi đối với Oracle UCP để làm cho những người bảo trì biết về createConnectionBuilder mới tham gia trong giao diện DataSource.
Trước mắt, nếu khả thi, bạn có thể quay lại sử dụng 11g phiên bản 2 của UCP (không phải 12, không phải 19) không có phương thức createConnectionBuilder trên giao diện PoolDataSource. Không phải là một tình huống lý tưởng, vì bạn đang từ bỏ những cải tiến đáng giá của một thập kỷ trong UCP bằng cách quay trở lại 11g.