在JDBC中,您首先通过调用来注册驱动程序
Class.forName('classname')
它加载Database类并使用DriverManager注册该类
当你说DriverManager.getConnection() – 它返回java.sql.Connection(根据规范的合同)
Which class implements these methods?
实际的实现由数据库供应商提供,例如,甲骨文,MySQL.
Why it is called as connection object instead of implemented class
object?
如果你想要,你可以在供应商jar中查找并找到哪个类实现Connection,而不是
Connection connection = DriverManager.getConnection()
你可以写
VendorConnectionImpl vendorConnection = (VendorConnectionImpl)DriverManager.getConnection()
以上内容将起作用,但它将绑定您与该特定实现.
如果您想从vendor1迁移到vendor2,则无法执行此操作,首先您必须根据vendor2 API更改上述代码,但如果您使用第一种方法,则可以从Vendor转移到Vendor,而无需更改代码.