当前位置: 首页 > 知识库问答 >
问题:

在NonRegisteringDriver 中已经实现了java.sql.Driver 为什么Driver 还要实现java.sql.Driver?

韶亮
2023-10-06

public class Driver extends NonRegisteringDriver implements java.sql.Driver
public class NonRegisteringDriver implements Driver

是为了规范吗?

共有1个答案

邵繁
2023-10-06

你的问题似乎涉及了 Java 数据库连接(JDBC)驱动的两个主要接口,java.sql.DriverNonRegisteringDriver。首先,我们要明确,这里的 NonRegisteringDriver 并不是 JDBC 标准的一部分,可能是某个特定数据库驱动的类。

然后,关于 java.sql.Driver 接口,这是 JDBC 规范定义的接口,所有的 JDBC 驱动都应该实现这个接口。这个接口中定义了一些方法,比如 getConnection()connect()createStatement() 等,用于创建数据库连接、创建语句等操作。

那么,为什么 Driver 要实现 java.sql.Driver 接口呢?原因就是为了遵循 JDBC 规范。只有实现了 java.sql.Driver 接口,这个类才能被视为一个合法的 JDBC 驱动,才能被 Java 应用使用来连接数据库。如果一个类声称自己是 JDBC 驱动,但却没有实现 java.sql.Driver 接口,那么它就不能被 Java 应用正常识别和使用。

至于 NonRegisteringDriver,从它的名字来看,这个类可能是在某些特定情况下使用,可能是在不需要注册驱动的情况下。具体的使用情况和目的,需要查看该类的文档或源码来了解。

所以,总结一下,Driver 类实现 java.sql.Driver 接口是为了遵循 JDBC 规范,使得这个类可以被 Java 应用识别和使用来连接数据库。而 NonRegisteringDriver 可能是在某些特定情况下使用,可能不需要注册驱动。

 类似资料:
  • 我没有受过CS方面的教育,但我已经专业地用Java编程近十年了,我从未见过任何人在生产系统中实现。这并不意味着它没有它的用途,或者和我一起工作的人一直在做正确的事情。 所以我的问题是,有哪些实现的用例不能通过语言中的另一个进程或语法更可靠地处理? 请提供具体的场景或您的经验,简单地重复一本Java教科书,或者Finalize的预期用途是不够的,因为这不是本问题的意图。

  • 问题内容: 我已经阅读了许多关于Java的新手问题,发现令人困惑的是,没有人真的说过是清理资源的不可靠方法。我看到有人评论说他们用它来清理,这确实很吓人,因为要保证关闭的唯一方法就是最终实现。 我没有在CS上学,但是近十年来我一直在用Java专业编程,而且从未见过有人在生产系统中实现过。这仍然并不意味着它没有用途,或者与我一起工作的人都在正确地做它。 所以我的问题是,存在哪些用例无法通过语言中的其

  • 我最近遇到了一个Java8类,它使用分隔符添加字符串并为其添加前缀和后缀,但我不明白这个类的需要,因为它也使用在后端,也执行非常简单的附加字符串操作。 我是否因为没有真正理解这门课的真正目的而错过了什么?

  • 我被这个概念困住了。 这是我在一个站点上看到的解释的一部分: 隐藏实现 我是这样想象的: 库客户机是否知道这个实现有什么区别?

  • Java线程的run()方法在线程启动时由该线程上的JVM调用。要让线程做一些事情,您可以创建thread的子类并重写它的run()方法,或者(最好)您可以为线程的构造函数提供一个Runnable。那很好。 当时我正在创建Thread的子类并重写run,我意识到我不能像预期的那样使方法受到保护,因为Thread.run()是公共的。然后我意识到为什么:它必须是公共的,因为Thread实现了Runn

  • 问题内容: @Entity public class Husband implements Serializable { 广义上是什么? 类为什么实现接口? 为什么丈夫成员一个人只有@OnetoOne(mappedBy =“ Wife”),而妻子成员却没有@OnetoOne(mappedBy =“ husband”) 问题答案: 广义上讲,序列化是Java为开发人员提供的将任何对象的状态持久保存到