![](/img/trans.png)
[英]Casting java.sql.Connection to com.mysql.jdbc.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.SQLServerConnection
和java.sql.Connection
之间的实际区别是什么,以及是否有意义更改。
到目前为止,我找不到有用的信息。 大多数页面仅介绍如何解决每种类型的问题...
在性能,行为或其他可能性上是否存在任何差异,这些差异实际上足以证明需要切换回去?
java.sql.Connection
是com.microsoft.sqlserver.jdbc.SQLServerConnection
是MS-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.