加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – JDBC-接口的实现

发布时间:2020-12-15 07:36:28 所属栏目:Java 来源:网络整理
导读:在JDBC中,为了在DB中连接和执行语句,我们主要使用Connection,Statement和ResultSet作为接口.但是它们的相应对象后来用于运行createStatement(),executeQuery(),next()等方法.这些类实现了这些方法吗? 为什么它被称为连接对象而不是实现的类对象? 解决方法
在JDBC中,为了在DB中连接和执行语句,我们主要使用Connection,Statement和ResultSet作为接口.但是它们的相应对象后来用于运行createStatement(),executeQuery(),next()等方法.这些类实现了这些方法吗?
为什么它被称为连接对象而不是实现的类对象?

解决方法

在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?

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

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

Connection connection = DriverManager.getConnection()

你可以写

VendorConnectionImpl vendorConnection = (VendorConnectionImpl)DriverManager.getConnection()

以上内容将起作用,但它将绑定您与该特定实现.

如果您想从vendor1迁移到vendor2,则无法执行此操作,首先您必须根据vendor2 API更改上述代码,但如果您使用第一种方法,则可以从Vendor转移到Vendor,而无需更改代码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读