gpt4 book ai didi

java - JDBC-接口(interface)的实现

转载 作者:行者123 更新时间:2023-12-01 19:05:15 25 4
gpt4 key购买 nike

在 JDBC 中,为了连接和执行 DB 中的语句,我们主要使用 Connection、Statement 和 ResultSet 这些接口(interface)。但它们相应的对象稍后用于运行 createStatement()、executeQuery()、next() 等方法。哪个类实现了这些方法?为什么它被称为连接对象而不是实现的类对象?

最佳答案

在 JDBC 中,您首先通过调用注册驱动程序

Class.forName('classname')

加载数据库类并使用DriverManager注册该类

当您说 DriverManager.getConnection() - 它返回您 java.sql.Connection (按照规范的契约(Contract))

Which class implements these methods?

实际的实现由数据库供应商提供,例如Oracle、MySQL。

Why it is called as connection object instead of implemented class object?

因为你code to Interface and not implementation (良好的编码实践)。

如果您愿意,您可以在供应商 jar 中查找并找到哪个类实现 Connection,而不是

Connection connection = DriverManager.getConnection()

你可以写

VendorConnectionImpl vendorConnection = (VendorConnectionImpl)DriverManager.getConnection()

上面的方法可以工作,但随后它会将您与该特定实现绑定(bind)在一起。

如果您想从供应商1移动到供应商2,您不能这样做,首先您必须根据供应商2 API更改上述代码,但是如果您使用第一种方法,您可以从供应商移动到供应商,而无需进行更改你的代码。

关于java - JDBC-接口(interface)的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10338115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com