繁体   English   中英

com.microsoft.sqlserver.jdbc.SQLServerConnection和java.sql.Connection有什么区别

[英]What's the difference between com.microsoft.sqlserver.jdbc.SQLServerConnection and java.sql.Connection

我在连接到SQL Server 2012数据库的Tomcat 8上具有Maven Web应用程序。

为了进行记录,我想使用getClientConnectionID

由于Microsoft的政策,让他们的驱动程序与Maven一起工作是很痛苦的(我知道有可能,而且我做了一段时间,但就我而言,在迁移/共享项目后会导致一些问题)。 不幸的是,由于未知原因,JTDS-Driver拒绝使用数据库服务器。

因此,现在我将sqljdbc4-4.0.jar放入Tomcat的lib文件夹和项目的META-INF / services中,此后一切都很好。

但是,在对数据库进行了更多处理之后,我不确定是否值得进行切换并尝试获取一些信息, com.microsoft.sqlserver.jdbc.SQLServerConnectionjava.sql.Connection之间的实际区别是什么,以及是否有意义更改。

到目前为止,我找不到有用的信息。 大多数页面仅介绍如何解决每种类型的问题...

在性能,行为或其他可能性上是否存在任何差异,这些差异实际上足以证明需要切换回去?

java.sql.Connectioncom.microsoft.sqlserver.jdbc.SQLServerConnectionMS-SQL的实现的interface ,您无法比较它们的性能,因为第一个只是一个不执行任何操作的interface ,而另一个是实际的实现。 因此,您可以使用Connection来维护代码中的abstraction ,但是实际上,您将有效地使用提供的实现,在这种情况下,该实现为com.microsoft.sqlserver.jdbc.SQLServerConnection 人们通常将它们添加为runtime dependencies这样他们就不会得到污染的名称空间。

java.sql.Connection是由com.microsoft.sqlserver.jdbc.SQLServerConnection实现的接口。

通常,您只需要针对该接口进行编程即可独立于特定的实现。 然后-如果您不依赖于某些特定于实现的行为-只需将jar与JDBC驱动程序交换即可,并且您的代码应该仍然可以正常工作,而无需进行任何更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM