我在连接到SQL Server 2012数据库的Tomcat 8上安装了Maven Web应用程序。
出于记录目的,我想使用getClientConnectionID
。
由于微软的政策,让他们的驱动程序与Maven一起工作非常痛苦(我知道它可能并且我做了一段时间,但在我的情况下它会导致一些问题迁移/共享项目后)。 不幸的是,JTDS-Driver拒绝使用数据库服务器,原因不明。
所以现在我只是将sqljdbc4-4.0.jar放入Tomcat的lib文件夹和项目的META-INF /服务中,从那以后一切都很好。
然而,在对数据库进行更多操作之后,我不确定是否值得切换,并尝试获取一些信息,com.microsoft.sqlserver.jdbc.SQLServerConnection
和java.sql.Connection
之间的实际差异是什么?改变是有道理的。
到目前为止,我无法找到有用的信息。大多数页面只是提到如何解决每种类型的问题...
在性能,行为或其他可能性方面是否存在任何差异,这实际上有理由转回?
答案 0 :(得分:3)
java.sql.Connection
是interface
其中com.microsoft.sqlserver.jdbc.SQLServerConnection
是MS-SQL
的实现,您无法比较其效果,因为第一个只是interface
在另一个是实际实现的地方什么都不做。因此,您使用Connection
在代码中维护abstraction
,但实际上您将使用您提供的实现,在这种情况下为com.microsoft.sqlserver.jdbc.SQLServerConnection
。人们通常会将这些内容添加为runtime
dependencies
,以便他们不会获得污染的命名空间。
答案 1 :(得分:1)
java.sql.Connection
是由com.microsoft.sqlserver.jdbc.SQLServerConnection
实现的接口。
通常,您只能针对接口进行编程,使其独立于特定实现。然后 - 如果您不依赖某些特定于实现的行为 - 您可以简单地将jar与JDBC驱动程序交换,并且您的代码仍然可以在没有任何更改的情况下工作。