You can translate the question and the replies:

DriverManager.getDriver() for denodo-vdp-jdbcdriver.jar gives com.denodo.vdb.jdbcdriver.VDBJDBCDriver instead of com.denodo.vdp.jdbc.Driver

As part of an application code, I'm trying to get the Driver Classname from the provided JDBC URL. In case of Denodo, for the JDBC URL "jdbc:vdb://localhost:port/dataasset", I'm getting "com.denodo.vdb.jdbcdriver.VDBJDBCDriver" as the Driver Class Name but as per Denodo Documents, the Driver Class is - com.denodo.vdp.jdbc.Driver System.out.println("Checking Driver Class"); try { Driver driver = DriverManager.getDriver("jdbc:vdb://localhost:3888/dataasset"); System.out.println("Class Name from DM : "+ driver.getClass().getName()); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } My Question: 1. Is there a way to get "com.denodo.vdp.jdbc.Driver" as Driver Class from DriverManeger 2. Or Can I use "com.denodo.vdb.jdbcdriver.VDBJDBCDriver" as Driver instead of "com.denodo.vdp.jdbc.Driver"? Appreciate any help on this.
user
19-04-2019 12:07:47 -0400

1 Answer

Hello, According to https://docs.oracle.com/javase/8/docs/api/java/sql/DriverManager.html#getDriver-java.lang.String-, DriverManager.getDriver() “attempts to select an appropriate driver from the set of registered JDBC drivers”. It is not guaranteed to pick the “most” appropriate driver. We recommend you manually select “com.denodo.vdp.jdbc.Driver” as the driver class. You can make that class available to the JVM with something like this: Class.forName("com.denodo.vdp.jdbc.Driver"); Hope this helps.
Denodo Team
22-04-2019 18:30:11 -0400
You must sign in to add an answer. If you do not have an account, you can register here