Reputation: 1606
I'm having a Maven Web Application on a Tomcat 8 connecting to a SQL Server 2012 Database.
For logging purposes I wanted to use the getClientConnectionID
.
Due to the policies of Microsoft it's quite a pain to make their driver work with Maven (I know it's possible and I did it for a while, but in my case it lead to several problems after migrating/sharing the project). Unfortunately the JTDS-Driver refuses to work with the Database server for unknown reasons.
So right now I've just put the sqljdbc4-4.0.jar into the lib folder of Tomcat and the META-INF/services of the project and since then everything is fine.
Yet after doing more with the database I'm unsure if it's worth to switch and tried to get some information what the actual differences between com.microsoft.sqlserver.jdbc.SQLServerConnection
and java.sql.Connection
are and if it would make sense to change.
So far I couldn't find useful information. Most pages just refer how to solve issues with each type...
Is there any difference in performance, behaviour or other possibilities which would actually justify switching back?
Upvotes: 2
Views: 947
Reputation: 23329
java.sql.Connection
is an interface
where com.microsoft.sqlserver.jdbc.SQLServerConnection
is an implementation for MS-SQL
, you can't compare their performance because the first is just an interface
that does nothing where the other is the actual implementation. So you use Connection
to maintain abstraction
in your code, but effectively you will be using the implementation you provide, which is com.microsoft.sqlserver.jdbc.SQLServerConnection
in this case. People usually add those as runtime
dependencies
so they don't get a polluted namespace.
Upvotes: 3
Reputation: 32980
java.sql.Connection
is the interface which is implemented by com.microsoft.sqlserver.jdbc.SQLServerConnection
.
Normally you would only program against the interface to be independent of the specific implementation. Then - if you don't rely on some implementation specific behaviour - you can simply exchange the jar with the JDBC driver and your code should still work without any changes.
Upvotes: 1