JDBC(Java Database Connectivity)概述
java中的数据存储技术
-
通过JDBC直接访问数据库
-
JDOC(Java Data Object)技术
-
第三方O/R工具(如: Hibernate , MyBatis等)
注意: JDBC是java访问数据库的基石,JDOC,Hibernate,MyBatis等只是更好的封装了JDBC.
JDBC介绍:
- JDBC是一个独立于特定数据库管理系统,是一个通用的SQL数据库存取和操作的公共接口(一组API),JDBC中定义了用来访问数据库的标准java类库,使用这些类库可以以一种标准的方法,方便的访问数据库资源
- 这些标准的java类库定义在了java.sql包和javax.sql包下
- 我们可以发现在java.sql包和javax.sql包中绝大多数是接口,极少一部分为类,为什么?
- 其实这个就是为什么说JDBC是一种通用的SQL数据库的存取和操作的公共API的原因,因为我们在java.sql和javax.sql包下大多数定义的都是接口,我们在使用这些借口的时候会根据面向的不通过的DBMS(数据库管理系统)而选择不同的实现类去实现,也就是根据不同的DBMS我们才会去选择具体的创建的哪个实现类的对象
- 我们可以发现在java.sql包和javax.sql包中绝大多数是接口,极少一部分为类,为什么?
- 这些标准的java类库定义在了java.sql包和javax.sql包下
其实为什么说我们的JDBC是一个独立于特定数据库管理系统的对SQL数据库存取和操作的公共接口,就是因为JDBC中定义的绝大多数的API都是接口,我们的定义的接口就相当于定义的一个个的规范,我们也只是定义这个规范,具体的实现就交给具体的数据库厂商去完成
-
JDBC为访问不同的数据库提供了一种统一的途径,为java开发者屏蔽了一些细节问题
-
JDBC的目标是让java程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库管理系统,这样就使得程序员无需对特定数据库的特点有过多的了解,从而大大简化了和加快了开发过程
如果没有JDBC,那么java程序中访问数据库就是如下的:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TUZxyeQ8-1648398853469)(E:\非凡英才\数据库笔记\运算结果\如果没有JDBC时Java访问数据库的图解.png)]
- 从这个图中我们可以发现: 如果没有JDBC,那么在java程序中我们就要直接面向特定的数据库管理系统,这个时候对于不同的数据库我们在Java程序中就要提供不同的连接方式,很繁琐,会给Java程序员造成一定的麻烦,java程序员在和特定的数据库建立连接的时候就要对Java中与这种数据库连接的方式有一定程度的了解
有了JDBC只有,Java程序访问数据库就是这样的:(如下:)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fNYHJfVw-1648398853470)(E:\非凡英才\数据库笔记\运算结果\有了JDBC之后java程序访问数据库的图解(真实情况)].png)
- 这里我们Java中提供了一套具体的规范(接口),接口中定义有抽象方法,不去具体实现,具体的实现分别在JDBC驱动中,而JDBC驱动右各个数据库厂商完成,我们java中只是定义一个规范(接口),具体的实现还是由各个数据库厂商来完成
- 这样的方式我们的java程序员就能很轻松的和不同的数据库之间完成连接
JDBC体系结构:
JDBC接口(API)主要分为两个层次
- 面向应用的API: JavaAPI,抽象接口,供java开发人员使用(连接数据库,执行SQL语句,获得结果等等)
- 面向数据库的API : JavaDriverAPI(JDBC驱动),供开发商开发数据库驱动程序使用
补充:
JDBC是Sun公司提供的一套用于数据库操作的接口,Java程序员只需要面向这要接口编程即可,不同的数据库厂商则需要针对这套接口提供不同的实现 ----- 面向接口编程
- 不同的实现的集合即为不同数据库的驱动