我正在使用来自包java.sql的接口连接
实际上,我虽然是一个Class,但是当我尝试查看源代码时却发现它是一个Interface。
在Connection接口的源代码中,每种方法只有一行,没有任何实现!!
是什么让这个界面正常工作?
要连接的数据库:MySql
连接源代码页:http :
//www.docjar.com/html/api/java/sql/Connection.java.html
它不是“起作用”的接口,而是其实现之一,它特定于您的特定RDBMS供应商。实际上,通常由供应商提供Connection
接口的实现。
您打电话的时候
Connection conn = DriverManager.getConnection(
"jdbc:jdbc:mysql://localhost:3306/
, connectionProps);
驱动程序管理器搜索已注册的JDBC驱动程序,找到用于MySQL的驱动程序(它从连接字符串中知道它是MySQL),将连接属性传递给实现的MySQLJDBC驱动程序内的类的构造函数Connection
,然后将结果Connection
实例返回给您。例如,驾驶员可能会返回一个实例的包私有类的MySqlConnection
实现Connection
比一个事实,即它实现了,你的程序将使用它来与RDBMS交互,无需了解类的任何细节,等Connection
。
这段代码过滤调用流,然后打印所有大于10的元素。谓词中的测试方法为我们做到了这一点。 但是filter()方法的实际实现在哪里呢?该方法返回的“流”大于10?我不明白。 这个问题在某种程度上也适用于forEach()方法。它如何在流中迭代?因为filter()和forEach()方法在接口流中是抽象的,没有实现。
我查了Javadoc,什么也没有得到。我想知道这是怎么回事。 我找到了这个和这个,但这并不能消除我的疑虑。如果我漏了什么请告诉我。
问题内容: 放置注释的最佳做法是什么?我应该注释接口方法还是实现? 问题答案: 好问题。我一直把它放在实现中。也许是因为它是实现细节,而不是抽象。 你可能希望不同的实现具有不同的事务行为。 El Guapo指出,除此之外,在接口上使用代理策略还可能引发更多问题。
在Spring中构建一个项目时,我遵循了一个教程,@Repository接口扩展了另一个接口JpaRepository,它为子接口添加了功能: 在@service类中 我想找到“save”方法的实际代码。下载了并进行了反编译,但在那里找不到实现。
问题内容: 我正在使用Spring开发应用程序。我需要使用注释。我和这样。我对应该在哪里保留注释感到困惑。 我应该用注释接口或实现吗?这两种方法有什么区别? 问题答案: 我从不将(或…)放在界面上,因为这会使界面无用。让我解释一下原因。 声明1:如果你有一个接口,那么你想将该接口用于注入点类型。 权利要求2:接口的目的是它定义可以由几种实现方式实现的协定。在另一侧,你有注射点()。(IMHO)仅具
问题内容: 例: 在package中,类型定义一个包装方法的接口。 什么是最简单的方法 找出 哪些类型 的标准库(即在此列在golang.org/pkg) 满足这个接口 ? 这仅仅是经验问题还是有其他帮助吗? 问题答案: 主要是根据经验。无论如何,例如: 而且golang.org网站还具有区分大小写的搜索功能。