我正在尝试理解JDBC技术。我阅读了在线资料,其中大部分内容涉及:
1)JDBC API
2)DriverManager
3)司机
我看到了以下架构图:
根据JDBC规范,jdbc相关的东西在java.sql和javax.sql包中。我有以下问题:
1)在我们看到JDBC API的图表中,它们究竟是什么?这些是java.sql中的类/接口; javax.sql中?这些直接用于应用程序吗?谁实现了JDBC API?
2)JDK是否提供了java.sql中定义的所有类/接口的实现; javax.sql中?
3)谁实现了JDBC Driver Manager?它是由JDK本身提供还是由数据库供应商提供?它是作为一个进程运行还是只是一个类/接口?
4)究竟什么是司机?据我所知,驱动程序与数据库服务器通信并由数据库供应商提供?现在,这些驱动程序是否实现了java.sql; javax.sql中?或者驱动程序有不同的类与java.sql无关; javax.sql中? JDBC API(在上图中)和驱动程序之间是否存在任何关系?
答案 0 :(得分:2)
java.sql.DriverManager
,它是JRE / JDK的一部分。java.sql.Connection
。答案 1 :(得分:2)
JDBC API由两个包组成:
这些包包含从db访问数据所需的所有类和接口。但是它们还不够,因为实现JDBC的类和接口都允许连接到不同的DBMA,因此我们需要一个驱动程序。
访问类型有4种类型的驱动程序:
-Type 1:JDBC-ODBC -Type 2:JDBC-libDBMA -Type 3:JDBC - 中间件驱动程序(类型1,2,4) - DBMA -Type 4:JDBC - DBMA(直接)
要与java应用程序和数据库建立连接,您必须: 首先加载包。 第二次加载驱动程序。 所以要回答你的问题,JDK本身不提供JDBC驱动程序(必须从其他源代码下载),JDK不提供java.sql中定义的所有类/接口的实现。 javax.sq'因为你必须导入它们。